<!DOCTYPE html><html lang="en"><head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
  <meta content="CR" name="w3c-status">
  <title>HTML 5.1: 11. Obsolete features</title>
  <link href="styles/styles-html.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href=styles.default.css>
  <meta content="Bikeshed 1.0.0" name="generator">

  <link href="styles/W3C-CR" rel="stylesheet" type="text/css">
 </head>
 <body class="h-entry">
  <div class="head">
   <header>
    <p data-fill-with="logo"><a href="http://www.w3.org/"><img alt="W3C" height="48" src="styles/logos/W3C" width="72"></a></p>
    <h1 class="p-name no-ref allcaps" id="title">HTML 5.1</h1>
    <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">W3C Candidate Recommendation, <time class="dt-updated" datetime="2016-06-21">21 June 2016</time></span></h2>
   </header>
   
   
   
   
  </div>
  
  
  
  
  
  <nav data-fill-with="table-of-contents" id="toc"><p class="prev_next">← <a href="rendering.html#rendering"><span class="secno">10</span> <span class="content">Rendering</span></a> — <a href="index.html#contents">Table of contents</a> — <a href="iana.html#iana"><span class="secno">12</span> <span class="content">IANA considerations</span></a> →</p>
   <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
   <ol class="toc" role="directory"><li>
     <a href="obsolete.html#obsolete"><span class="secno">11</span> <span class="content">Obsolete features</span></a>
     <ol class="toc">
      <li>
       <a href="obsolete.html#obsolete-but-conforming-features"><span class="secno">11.1</span> <span class="content">Obsolete but conforming features</span></a>
       <ol class="toc">
        <li><a href="obsolete.html#warnings-for-obsolete-but-conforming-features"><span class="secno">11.1.1</span> <span class="content">Warnings for obsolete but conforming features</span></a>
       </li></ol>
      </li><li><a href="obsolete.html#non-conforming-features"><span class="secno">11.2</span> <span class="content">Non-conforming features</span></a>
      </li><li>
       <a href="obsolete.html#requirements-for-implementations"><span class="secno">11.3</span> <span class="content">Requirements for implementations</span></a>
       <ol class="toc">
        <li><a href="obsolete.html#the-applet-element"><span class="secno">11.3.1</span> <span class="content">The <span><code>applet</code></span> element</span></a>
        </li><li><a href="obsolete.html#the-marquee-element"><span class="secno">11.3.2</span> <span class="content">The <span><code>marquee</code></span> element</span></a>
        </li><li><a href="obsolete.html#frames"><span class="secno">11.3.3</span> <span class="content">Frames</span></a>
        </li><li>
         <a href="obsolete.html#application-caches"><span class="secno">11.3.4</span> <span class="content">Application caches</span></a>
         <ol class="toc">
          <li><a href="obsolete.html#parsing-cache-manifests"><span class="secno">11.3.4.1</span> <span class="content">Parsing cache manifests</span></a>
          </li><li><a href="obsolete.html#downloading-or-updating-an-application-cache"><span class="secno">11.3.4.2</span> <span class="content">Downloading or updating an application cache</span></a>
          </li><li><a href="obsolete.html#the-application-cache-selection-algorithm"><span class="secno">11.3.4.3</span> <span class="content">The application cache selection algorithm</span></a>
          </li><li><a href="obsolete.html#changes-to-the-networking-model"><span class="secno">11.3.4.4</span> <span class="content">Changes to the networking model</span></a>
          </li><li><a href="obsolete.html#expiring-application-caches"><span class="secno">11.3.4.5</span> <span class="content">Expiring application caches</span></a>
          </li><li><a href="obsolete.html#disk-space"><span class="secno">11.3.4.6</span> <span class="content">Disk space</span></a>
          </li><li><a href="obsolete.html#security-concerns-with-offline-applications-caches"><span class="secno">11.3.4.7</span> <span class="content">Security concerns with offline applications caches</span></a>
          </li><li><a href="obsolete.html#application-cache-api"><span class="secno">11.3.4.8</span> <span class="content">Application cache API</span></a>
         </li></ol>
        </li><li><a href="obsolete.html#other-elements-attributes-and-apis"><span class="secno">11.3.5</span> <span class="content">Other elements, attributes and APIs</span></a>
       </li></ol>
     </li></ol>
    </li></ol>
  </nav><main><section>
    <h2 class="heading settled" data-level="11" id="obsolete"><span class="secno">11. </span><span class="content">Obsolete features</span><a class="self-link" href="obsolete.html#obsolete"></a></h2>
    <h3 class="heading settled" data-level="11.1" id="obsolete-but-conforming-features"><span class="secno">11.1. </span><span class="content">Obsolete but conforming features</span><a class="self-link" href="obsolete.html#obsolete-but-conforming-features"></a></h3>
    <p>Features listed in this section will trigger warnings in conformance checkers.</p>
    <p>Authors should not specify a <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-img-border" id="ref-for-element-attrdef-img-border-1">border</a></code> attribute on an <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-175">img</a></code> element. If the
  attribute is present, its value must be the string "<code>0</code>". CSS should be used instead.</p>
    <p>Authors should not specify a <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-script-language" id="ref-for-element-attrdef-script-language-6">language</a></code> attribute on a <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-132">script</a></code> element. If
  the attribute is present, its value must be an <a data-link-type="dfn" href="infrastructure.html#ascii-case-insensitive" id="ref-for-ascii-case-insensitive-91">ASCII case-insensitive</a> match for the string
  "<code>JavaScript</code>" and either the <code><a data-link-type="element-sub" href="semantics-scripting.html#element-attrdef-script-type" id="ref-for-element-attrdef-script-type-13">type</a></code> attribute must be omitted or its value
  must be an <a data-link-type="dfn" href="infrastructure.html#ascii-case-insensitive" id="ref-for-ascii-case-insensitive-92">ASCII case-insensitive</a> match for the string "<code>text/javascript</code>".
  The attribute should be entirely omitted instead (with the value "<code>JavaScript</code>", it has
  no effect), or replaced with use of the <code><a data-link-type="element-sub" href="semantics-scripting.html#element-attrdef-script-type" id="ref-for-element-attrdef-script-type-14">type</a></code> attribute.</p>
    <p>Authors should not specify the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-a-name" id="ref-for-element-attrdef-a-name-1">name</a></code> attribute on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-107">a</a></code> elements. If the
  attribute is present, its value must not be the empty string and must neither be equal to the
  value of any of the <a data-link-type="dfn" href="https://www.w3.org/TR/dom/#concept-id">IDs</a> in the element’s <a data-link-type="dfn" href="infrastructure.html#home-subtree" id="ref-for-home-subtree-13">home subtree</a> other than the element’s own <code><a data-link-type="element-sub" href="dom.html#element-attrdef-global-id" id="ref-for-element-attrdef-global-id-7">id</a></code>, if any, nor be equal to the value of any of the other <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-a-name" id="ref-for-element-attrdef-a-name-2">name</a></code> attributes on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-108">a</a></code> elements in the element’s <a data-link-type="dfn" href="infrastructure.html#home-subtree" id="ref-for-home-subtree-14">home subtree</a>. If this attribute is present and the
  element has an <code><a data-link-type="element-sub" href="dom.html#element-attrdef-global-id" id="ref-for-element-attrdef-global-id-8">id</a></code>, then the attribute’s value must be equal to the element’s <code><a data-link-type="element-sub" href="dom.html#element-attrdef-global-id" id="ref-for-element-attrdef-global-id-9">id</a></code>. In
  earlier versions of the language, this attribute was intended as a way to specify possible targets
  for fragment identifiers in <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URLs</a>. The <code><a data-link-type="element-sub" href="dom.html#element-attrdef-global-id" id="ref-for-element-attrdef-global-id-10">id</a></code> attribute should be used instead.</p>
    <p>Authors should not, but may despite requirements to the contrary elsewhere in this specification,
  specify the <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-maxlength" id="ref-for-element-attrdef-input-maxlength-29">maxlength</a></code> and <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-size" id="ref-for-element-attrdef-input-size-26">size</a></code> attributes on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-329">input</a></code> elements
  whose <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-type" id="ref-for-element-attrdef-input-type-146">type</a></code> attributes are in the <a data-link-type="element-state" href="sec-forms.html#element-statedef-input-number" id="ref-for-element-statedef-input-number-16">Number</a> state. One
  valid reason for using these attributes regardless is to help legacy user agents that do not
  support <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-330">input</a></code> elements with <code>type="number"</code> to still render the text field with a
  useful width.</p>
    <p class="note" role="note"> In <a href="syntax.html#syntax">the HTML syntax</a>, specifying a <a data-link-type="dfn" href="syntax.html#doctype" id="ref-for-doctype-6">DOCTYPE</a> that is an <a data-link-type="dfn" href="syntax.html#obsolete-permitted-doctype" id="ref-for-obsolete-permitted-doctype-2">obsolete permitted
    DOCTYPE</a> will also trigger a warning. </p>
    <h4 class="heading settled" data-level="11.1.1" id="warnings-for-obsolete-but-conforming-features"><span class="secno">11.1.1. </span><span class="content">Warnings for obsolete but conforming features</span><a class="self-link" href="obsolete.html#warnings-for-obsolete-but-conforming-features"></a></h4>
    <p>To ease the transition from HTML Transitional documents to the language defined in <em>this</em> specification, and to discourage certain features that are only allowed in very few circumstances,
  conformance checkers must warn the user when the following features are used in a document. These
  are generally old obsolete features that have no effect, and are allowed only to distinguish
  between likely mistakes (regular conformance errors) and mere vestigial markup or unusual and
  discouraged practices (these warnings).</p>
    <p>The following features must be categorized as described above:</p>
    <ul>
     <li data-md="">
      <p>The presence of an <a data-link-type="dfn" href="syntax.html#obsolete-permitted-doctype" id="ref-for-obsolete-permitted-doctype-3">obsolete permitted DOCTYPE</a> in an <a data-link-type="dfn" href="infrastructure.html#html-document" id="ref-for-html-document-37">HTML document</a>.</p>
    </li></ul>
    <ul>
     <li data-md="">
      <p>The presence of a <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-img-border" id="ref-for-element-attrdef-img-border-2">border</a></code> attribute on an <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-176">img</a></code> element if its value is the string
"<code>0</code>".</p>
     </li><li data-md="">
      <p>The presence of a <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-script-language" id="ref-for-element-attrdef-script-language-7">language</a></code> attribute on a <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-133">script</a></code> element if its value is an <a data-link-type="dfn" href="infrastructure.html#ascii-case-insensitive" id="ref-for-ascii-case-insensitive-93">ASCII case-insensitive</a> match for the string "<code>JavaScript</code>" and if there is no <code><a data-link-type="element-sub" href="semantics-scripting.html#element-attrdef-script-type" id="ref-for-element-attrdef-script-type-15">type</a></code> attribute or there is and its value is an <a data-link-type="dfn" href="infrastructure.html#ascii-case-insensitive" id="ref-for-ascii-case-insensitive-94">ASCII case-insensitive</a> match
for the string "<code>text/javascript</code>".</p>
     </li><li data-md="">
      <p>The presence of a <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-a-name" id="ref-for-element-attrdef-a-name-3">name</a></code> attribute on an <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-109">a</a></code> element, if its value is not the empty string.</p>
     </li><li data-md="">
      <p>The presence of a <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-maxlength" id="ref-for-element-attrdef-input-maxlength-30">maxlength</a></code> attribute on an <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-331">input</a></code> element whose <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-type" id="ref-for-element-attrdef-input-type-147">type</a></code> attribute is in the <a data-link-type="element-state" href="sec-forms.html#element-statedef-input-number" id="ref-for-element-statedef-input-number-17">Number</a> state.</p>
     </li><li data-md="">
      <p>The presence of a <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-size" id="ref-for-element-attrdef-input-size-27">size</a></code> attribute on an <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-332">input</a></code> element whose <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-type" id="ref-for-element-attrdef-input-type-148">type</a></code> attribute is in the <a data-link-type="element-state" href="sec-forms.html#element-statedef-input-number" id="ref-for-element-statedef-input-number-18">Number</a> state.</p>
    </li></ul>
    <p>Conformance checkers must distinguish between pages that have no conformance errors and have none
  of these obsolete features, and pages that have no conformance errors but do have some of these
  obsolete features.</p>
    <p class="example" id="example-ca82c939"><a class="self-link" href="obsolete.html#example-ca82c939"></a> For example, a validator could report some pages as "Valid HTML" and others as "Valid HTML with
    warnings". </p>
    <h3 class="heading settled" data-level="11.2" id="non-conforming-features"><span class="secno">11.2. </span><span class="content">Non-conforming features</span><a class="self-link" href="obsolete.html#non-conforming-features"></a></h3>
    <p>Elements in the following list are entirely obsolete, and must not be used by authors:</p>
    <dl>
     <dt data-md="">
      <p><code>applet</code></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-52">embed</a></code> or <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-93">object</a></code> instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-acronym"><code>acronym</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-abbr" id="ref-for-elementdef-abbr-14">abbr</a></code> instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-bgsound"><code>bgsound</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-audio" id="ref-for-elementdef-audio-29">audio</a></code> instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-dir"><code>dir</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="grouping-content.html#elementdef-ul" id="ref-for-elementdef-ul-22">ul</a></code> instead.</p>
     </dd><dt data-md="">
      <p><code>frame</code></p>
     </dt><dt data-md="">
      <p><code>frameset</code></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-noframes"><code>noframes</code></dfn></p>
     </dt><dd data-md="">
      <p>Either use <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-78">iframe</a></code> and CSS instead, or use server-side includes to generate
  complete pages with the various invariant parts merged in.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-isindex"><code>isindex</code></dfn></p>
     </dt><dd data-md="">
      <p>Use an explicit <code><a data-link-type="element" href="sec-forms.html#elementdef-form" id="ref-for-elementdef-form-104">form</a></code> and <a data-link-type="element-state" href="sec-forms.html#element-statedef-input-text" id="ref-for-element-statedef-input-text-59">text field</a> combination instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-listing"><code>listing</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="grouping-content.html#elementdef-pre" id="ref-for-elementdef-pre-19">pre</a></code> and <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-code" id="ref-for-elementdef-code-10">code</a></code> instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-nextid"><code>nextid</code></dfn></p>
     </dt><dd data-md="">
      <p>Use GUIDs instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-noembed"><code>noembed</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-94">object</a></code> instead of <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-53">embed</a></code> when fallback is necessary.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-plaintext"><code>plaintext</code></dfn></p>
     </dt><dd data-md="">
      <p>Use the "<code>text/plain</code>" <a data-link-type="dfn" href="infrastructure.html#mime-type" id="ref-for-mime-type-63">MIME type</a> instead.</p>
     </dd><dt data-md="">
      <p><code><a data-link-type="element" href="textlevel-semantics.html#elementdef-rb" id="ref-for-elementdef-rb-21">rb</a></code></p>
     </dt><dt data-md="">
      <p><code><a data-link-type="element" href="textlevel-semantics.html#elementdef-rtc" id="ref-for-elementdef-rtc-28">rtc</a></code></p>
     </dt><dd data-md="">
      <p>Providing the ruby base directly inside the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-ruby" id="ref-for-elementdef-ruby-31">ruby</a></code> element or using nested <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-ruby" id="ref-for-elementdef-ruby-32">ruby</a></code> elements
  is sufficient.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-strike"><code>strike</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code>del</code> instead if the element is marking an edit, otherwise use <code>s</code> instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-xmp"><code>xmp</code></dfn></p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="grouping-content.html#elementdef-pre" id="ref-for-elementdef-pre-20">pre</a></code> and <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-code" id="ref-for-elementdef-code-11">code</a></code> instead, and escape "<code>&lt;</code>" and
  "<code>&amp;</code>" characters as "<code>&amp;lt;</code>" and "<code>&amp;amp;</code>"
  respectively.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-basefont"><code>basefont</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-big"><code>big</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-blink"><code>blink</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-center"><code>center</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-font"><code>font</code></dfn></p>
     </dt><dt data-md="">
      <p><code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-20">marquee</a></code></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-multicol"><code>multicol</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-nobr"><code>nobr</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-spacer"><code>spacer</code></dfn></p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-tt"><code>tt</code></dfn></p>
     </dt><dd data-md="">
      <p>Use appropriate elements or CSS instead.</p>
      <p>Where the <code><a data-link-type="element" href="obsolete.html#elementdef-tt" id="ref-for-elementdef-tt-2">tt</a></code> element would have been used for marking up keyboard input,
  consider the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-kbd" id="ref-for-elementdef-kbd-18">kbd</a></code> element; for variables, consider the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-var" id="ref-for-elementdef-var-10">var</a></code> element;
  for computer code, consider the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-code" id="ref-for-elementdef-code-12">code</a></code> element; and for computer output, consider
  the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-samp" id="ref-for-elementdef-samp-12">samp</a></code> element.</p>
      <p>Similarly, if the <code><a data-link-type="element" href="obsolete.html#elementdef-big" id="ref-for-elementdef-big-2">big</a></code> element is being used to denote a heading, consider using
  the <code>h1</code> element; if it is being used for marking up important passages, consider
  the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-strong" id="ref-for-elementdef-strong-20">strong</a></code> element; and if it is being used for highlighting text for reference
  purposes, consider the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-mark" id="ref-for-elementdef-mark-11">mark</a></code> element.</p>
      <p>See also the <a href="textlevel-semantics.html#text-level-semantics-usage-summary">text-level semantics usage summary</a> for more suggestions with examples.</p>
    </dd></dl>
    <hr>
    <p>The following attributes are obsolete (though the elements are still part of the language), and
  must not be used by authors:</p>
    <dl>
     <dt data-md="">
      <p><dfn data-dfn-for="a" data-dfn-type="element-attr" data-export="" id="element-attrdef-a-charset"><code>charset</code><a class="self-link" href="obsolete.html#element-attrdef-a-charset"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-110">a</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="link" data-dfn-type="element-attr" data-export="" id="element-attrdef-link-charset"><code>charset</code><a class="self-link" href="obsolete.html#element-attrdef-link-charset"></a></dfn> on <code><a data-link-type="element" href="document-metadata.html#elementdef-link" id="ref-for-elementdef-link-71">link</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use an HTTP <code>Content-Type</code> header on the linked resource instead.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="a" data-dfn-type="element-attr" data-export="" id="element-attrdef-a-coords"><code>coords</code><a class="self-link" href="obsolete.html#element-attrdef-a-coords"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-111">a</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="a" data-dfn-type="element-attr" data-export="" id="element-attrdef-a-shape"><code>shape</code><a class="self-link" href="obsolete.html#element-attrdef-a-shape"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-112">a</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use <code>area</code> instead of <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-113">a</a></code> for image maps.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="a" data-dfn-type="element-attr" data-export="" id="element-attrdef-a-methods"><code>methods</code><a class="self-link" href="obsolete.html#element-attrdef-a-methods"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-114">a</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="link" data-dfn-type="element-attr" data-export="" id="element-attrdef-link-methods"><code>methods</code><a class="self-link" href="obsolete.html#element-attrdef-link-methods"></a></dfn> on <code><a data-link-type="element" href="document-metadata.html#elementdef-link" id="ref-for-elementdef-link-72">link</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use the HTTP OPTIONS feature instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="a" data-dfn-type="element-attr" data-export="" id="element-attrdef-a-name"><code>name</code></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-115">a</a></code> elements (except as noted in the
  previous section)</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="embed" data-dfn-type="element-attr" data-export="" id="element-attrdef-embed-name"><code>name</code><a class="self-link" href="obsolete.html#element-attrdef-embed-name"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-54">embed</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="img" data-dfn-type="element-attr" data-export="" id="element-attrdef-img-name"><code>name</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-177">img</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="option" data-dfn-type="element-attr" data-export="" id="element-attrdef-option-name"><code>name</code><a class="self-link" href="obsolete.html#element-attrdef-option-name"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-option" id="ref-for-elementdef-option-122">option</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use the <code><a data-link-type="element-sub" href="dom.html#element-attrdef-global-id" id="ref-for-element-attrdef-global-id-11">id</a></code> attribute instead.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="a" data-dfn-type="element-attr" data-export="" id="element-attrdef-a-urn"><code>urn</code><a class="self-link" href="obsolete.html#element-attrdef-a-urn"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-116">a</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="link" data-dfn-type="element-attr" data-export="" id="element-attrdef-link-urn"><code>urn</code><a class="self-link" href="obsolete.html#element-attrdef-link-urn"></a></dfn> on <code><a data-link-type="element" href="document-metadata.html#elementdef-link" id="ref-for-elementdef-link-73">link</a></code> elements</p>
     </dt><dd data-md="">
      <p>Specify the preferred persistent identifier using the <code><a data-link-type="element-sub" href="document-metadata.html#element-attrdef-link-href" id="ref-for-element-attrdef-link-href-9">href</a></code> attribute instead.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="form" data-dfn-type="element-attr" data-export="" id="element-attrdef-form-accept"><code>accept</code><a class="self-link" href="obsolete.html#element-attrdef-form-accept"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-form" id="ref-for-elementdef-form-105">form</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use the <code><a data-link-type="element-sub" href="sec-forms.html#element-attrdef-input-accept" id="ref-for-element-attrdef-input-accept-27">accept</a></code> attribute directly on the <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-333">input</a></code> elements instead.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="area" data-dfn-type="element-attr" data-export="" id="element-attrdef-area-type"><code>type</code><a class="self-link" href="obsolete.html#element-attrdef-area-type"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-area" id="ref-for-elementdef-area-98">area</a></code> elements</p>
     </dt><dd data-md="">
      <p>These attributes do not do anything useful, and for historical reasons there are no
  corresponding IDL attributes on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-area" id="ref-for-elementdef-area-99">area</a></code> elements. Omit them altogether.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="area" data-dfn-type="element-attr" data-export="" id="element-attrdef-area-nohref"><code>nohref</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-area" id="ref-for-elementdef-area-100">area</a></code> elements</p>
     </dt><dd data-md="">
      <p>Omitting the <code><a data-link-type="element-sub" href="links.html#element-attrdef-a-href" id="ref-for-element-attrdef-a-href-38">href</a></code> attribute is sufficient; the <code>nohref</code> attribute is
  unnecessary. Omit it altogether.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="head" data-dfn-type="element-attr" data-export="" id="element-attrdef-head-profile"><code>profile</code><a class="self-link" href="obsolete.html#element-attrdef-head-profile"></a></dfn> on <code><a data-link-type="element" href="document-metadata.html#elementdef-head" id="ref-for-elementdef-head-83">head</a></code> elements</p>
     </dt><dd data-md="">
      <p>When used for declaring which <code>meta</code> terms are used in the document, unnecessary;
  omit it altogether, and <a data-link-type="dfn" href="document-metadata.html#register-the-names" id="ref-for-register-the-names-3">register the names</a>.</p>
     </dd><dd data-md="">
      <p>When used for triggering specific user agent behaviors: use a <code><a data-link-type="element" href="document-metadata.html#elementdef-link" id="ref-for-elementdef-link-74">link</a></code> element
  instead.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="html" data-dfn-type="element-attr" data-export="" id="element-attrdef-html-version"><code>version</code><a class="self-link" href="obsolete.html#element-attrdef-html-version"></a></dfn> on <code><a data-link-type="element" href="semantics.html#elementdef-html" id="ref-for-elementdef-html-93">html</a></code> elements</p>
     </dt><dd data-md="">
      <p>Unnecessary. Omit it altogether.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="html" data-dfn-type="element-attr" data-export="" id="element-attrdef-html-manifest"><code>manifest</code></dfn> on <code><a data-link-type="element" href="semantics.html#elementdef-html" id="ref-for-elementdef-html-94">html</a></code> elements</p>
     </dt><dd data-md="">
      <p>The use of application caches is not recommended. Alternative mechanisms to support offline applications
   include the use of <a data-link-type="biblio" href="references.html#biblio-webstorage">[WEBSTORAGE]</a>, <a data-link-type="biblio" href="references.html#biblio-indexeddb">[IndexedDB]</a>, and <a data-link-type="biblio" href="references.html#biblio-service-workers">[SERVICE-WORKERS]</a>.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="input" data-dfn-type="element-attr" data-export="" id="element-attrdef-input-ismap"><code>ismap</code><a class="self-link" href="obsolete.html#element-attrdef-input-ismap"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-334">input</a></code> elements</p>
     </dt><dd data-md="">
      <p>Unnecessary. Omit it altogether. All <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-335">input</a></code> elements with a <code>type</code> attribute in
  the <a data-link-type="element-state" href="sec-forms.html#element-statedef-input-image-button" id="ref-for-element-statedef-input-image-button-26">image button</a> state are processed as server-side image
  maps.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="input" data-dfn-type="element-attr" data-export="" id="element-attrdef-input-usemap"><code>usemap</code></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-336">input</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use <code>img</code> instead of <code>input</code> for image maps.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="iframe,frame" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-longdesc"><code>longdesc</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-79">iframe</a></code> and <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-11">frame</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="img" data-dfn-type="element-attr" data-export="" id="element-attrdef-img-lowsrc"><code>lowsrc</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-178">img</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use a progressive JPEG image (given in the <code>src</code> attribute), instead of using two
  separate images.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="link" data-dfn-type="element-attr" data-export="" id="element-attrdef-link-target"><code>target</code><a class="self-link" href="obsolete.html#element-attrdef-link-target"></a></dfn> on <code><a data-link-type="element" href="document-metadata.html#elementdef-link" id="ref-for-elementdef-link-75">link</a></code> elements</p>
     </dt><dd data-md="">
      <p>Unnecessary. Omit it altogether.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="meta" data-dfn-type="element-attr" data-export="" id="element-attrdef-meta-scheme"><code>scheme</code></dfn> on <code><a data-link-type="element" href="document-metadata.html#elementdef-meta" id="ref-for-elementdef-meta-58">meta</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use only one scheme per field, or make the scheme declaration part of the value.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-archive"><code>archive</code><a class="self-link" href="obsolete.html#element-attrdef-object-archive"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-95">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-classid"><code>classid</code><a class="self-link" href="obsolete.html#element-attrdef-object-classid"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-96">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-code"><code>code</code><a class="self-link" href="obsolete.html#element-attrdef-object-code"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-97">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-codebase"><code>codebase</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-98">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-codetype"><code>codetype</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-99">object</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use the <code><a data-link-type="element-sub" href="semantics-embedded-content.html#element-attrdef-object-data" id="ref-for-element-attrdef-object-data-1">data</a></code> and <code><a data-link-type="element-sub" href="semantics-embedded-content.html#element-attrdef-object-type" id="ref-for-element-attrdef-object-type-1">type</a></code> attributes to invoke <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-92">plugins</a>. To set
  parameters with these names in particular, the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-11">param</a></code> element can be used.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-declare"><code>declare</code><a class="self-link" href="obsolete.html#element-attrdef-object-declare"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-100">object</a></code> elements</p>
     </dt><dd data-md="">
      <p>Repeat the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-101">object</a></code> element completely each time the resource is to be reused.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-standby"><code>standby</code><a class="self-link" href="obsolete.html#element-attrdef-object-standby"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-102">object</a></code> elements</p>
     </dt><dd data-md="">
      <p>Optimize the linked resource so that it loads quickly or, at least, incrementally.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-usemap"><code>usemap</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-103">object</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use <code>img</code> instead of <code>object</code> for image maps.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="param" data-dfn-type="element-attr" data-export="" id="element-attrdef-param-type"><code>type</code><a class="self-link" href="obsolete.html#element-attrdef-param-type"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-12">param</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="param" data-dfn-type="element-attr" data-export="" id="element-attrdef-param-valuetype"><code>valuetype</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-13">param</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use the <code>name</code> and <code>value</code> attributes without declaring value types.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="script" data-dfn-type="element-attr" data-export="" id="element-attrdef-script-language"><code>language</code></dfn> on <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-134">script</a></code> elements (except as
  noted in the previous section)</p>
     </dt><dd data-md="">
      <p>Use the <code>type</code> attribute instead.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="script" data-dfn-type="element-attr" data-export="" id="element-attrdef-script-event"><code>event</code></dfn> on <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-135">script</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="script" data-dfn-type="element-attr" data-export="" id="element-attrdef-script-for"><code>for</code></dfn> on <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-136">script</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use DOM events mechanisms to register event listeners. <a data-link-type="biblio" href="references.html#biblio-dom">[DOM]</a></p>
     </dd><dt data-md="">
      <p><code><a data-link-type="element-sub" href="semantics-embedded-content.html#element-attrdef-source-media" id="ref-for-element-attrdef-source-media-1">media</a></code> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-media-source" id="ref-for-elementdef-media-source-39">source</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use script to select the media resource(s) to use.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-datapagesize"><code>datapagesize</code><a class="self-link" href="obsolete.html#element-attrdef-table-datapagesize"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-116">table</a></code> elements</p>
     </dt><dd data-md="">
      <p>Unnecessary. Omit it altogether.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-summary"><code>summary</code><a class="self-link" href="obsolete.html#element-attrdef-table-summary"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-117">table</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use one of the <a href="tabular-data.html#sec-techniques-for-describing-tables">§4.9.1.1 Techniques for describing tables</a> given in the <code>table</code> section instead.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="td" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-abbr"><code>abbr</code><a class="self-link" href="obsolete.html#element-attrdef-td-abbr"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-50">td</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use text that begins in an unambiguous and terse manner, and include any more elaborate text
  after that. The <code>title</code> attribute can also be useful in including more detailed
  text, so that the cell’s contents can be made terse. If it’s a heading, use <code>th</code> (which has an <code>abbr</code> attribute).</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="td" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-axis"><code>axis</code><a class="self-link" href="obsolete.html#element-attrdef-td-axis"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-51">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-63">th</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use the <code><a data-link-type="element-sub" href="tabular-data.html#element-attrdef-th-scope" id="ref-for-element-attrdef-th-scope-1">scope</a></code> attribute on the relevant <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-64">th</a></code>.</p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="td" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-scope"><code>scope</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-52">td</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-65">th</a></code> elements for heading cells.</p>
     </dd><dt data-md="">
      <p><dfn data-dfn-for="data" data-dfn-type="element-attr" data-export="" id="element-attrdef-data-datasrc"><code>datasrc</code><a class="self-link" href="obsolete.html#element-attrdef-data-datasrc"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-117">a</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-16">applet</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-button" id="ref-for-elementdef-button-45">button</a></code>, <code><a data-link-type="element" href="grouping-content.html#elementdef-div" id="ref-for-elementdef-div-32">div</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-12">frame</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-80">iframe</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-179">img</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-337">input</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-label" id="ref-for-elementdef-label-58">label</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-legend" id="ref-for-elementdef-legend-20">legend</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-21">marquee</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-104">object</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-option" id="ref-for-elementdef-option-123">option</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-select" id="ref-for-elementdef-select-122">select</a></code>, <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-span" id="ref-for-elementdef-span-18">span</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-118">table</a></code>, and <code><a data-link-type="element" href="sec-forms.html#elementdef-textarea" id="ref-for-elementdef-textarea-97">textarea</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="data" data-dfn-type="element-attr" data-export="" id="element-attrdef-data-datafld"><code>datafld</code><a class="self-link" href="obsolete.html#element-attrdef-data-datafld"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-118">a</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-17">applet</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-button" id="ref-for-elementdef-button-46">button</a></code>, <code><a data-link-type="element" href="grouping-content.html#elementdef-div" id="ref-for-elementdef-div-33">div</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-fieldset" id="ref-for-elementdef-fieldset-46">fieldset</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-13">frame</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-81">iframe</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-180">img</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-338">input</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-label" id="ref-for-elementdef-label-59">label</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-legend" id="ref-for-elementdef-legend-21">legend</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-22">marquee</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-105">object</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-14">param</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-select" id="ref-for-elementdef-select-123">select</a></code>, <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-span" id="ref-for-elementdef-span-19">span</a></code>, and <code><a data-link-type="element" href="sec-forms.html#elementdef-textarea" id="ref-for-elementdef-textarea-98">textarea</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="data" data-dfn-type="element-attr" data-export="" id="element-attrdef-data-dataformatas"><code>dataformatas</code><a class="self-link" href="obsolete.html#element-attrdef-data-dataformatas"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-button" id="ref-for-elementdef-button-47">button</a></code>, <code><a data-link-type="element" href="grouping-content.html#elementdef-div" id="ref-for-elementdef-div-34">div</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-339">input</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-label" id="ref-for-elementdef-label-60">label</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-legend" id="ref-for-elementdef-legend-22">legend</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-23">marquee</a></code>, <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-106">object</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-option" id="ref-for-elementdef-option-124">option</a></code>, <code><a data-link-type="element" href="sec-forms.html#elementdef-select" id="ref-for-elementdef-select-124">select</a></code>, <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-span" id="ref-for-elementdef-span-20">span</a></code>,
  and <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-119">table</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use script and a mechanism such as <code>XMLHttpRequest</code> to populate the page
  dynamically. <a data-link-type="biblio" href="references.html#biblio-xhr">[XHR]</a></p>
     </dd><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-alink"><code>alink</code></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-132">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-bgcolor"><code>bgcolor</code></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-133">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-bottommargin"><code>bottommargin</code><a class="self-link" href="obsolete.html#element-attrdef-body-bottommargin"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-134">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-leftmargin"><code>leftmargin</code><a class="self-link" href="obsolete.html#element-attrdef-body-leftmargin"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-135">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-link"><code>link</code></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-136">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-marginheight"><code>marginheight</code><a class="self-link" href="obsolete.html#element-attrdef-body-marginheight"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-137">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-marginwidth"><code>marginwidth</code><a class="self-link" href="obsolete.html#element-attrdef-body-marginwidth"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-138">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-rightmargin"><code>rightmargin</code><a class="self-link" href="obsolete.html#element-attrdef-body-rightmargin"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-139">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-text"><code>text</code></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-140">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-margintop"><code>margintop</code><a class="self-link" href="obsolete.html#element-attrdef-body-margintop"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-141">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="body" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-vlink"><code>vlink</code></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-142">body</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="br" data-dfn-type="element-attr" data-export="" id="element-attrdef-br-clear"><code>clear</code><a class="self-link" href="obsolete.html#element-attrdef-br-clear"></a></dfn> on <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-br" id="ref-for-elementdef-br-18">br</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="caption" data-dfn-type="element-attr" data-export="" id="element-attrdef-caption-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-caption-align"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-caption" id="ref-for-elementdef-caption-43">caption</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="col" data-dfn-type="element-attr" data-export="" id="element-attrdef-col-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-col-align"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-24">col</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="col" data-dfn-type="element-attr" data-export="" id="element-attrdef-col-char"><code>char</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-25">col</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="col" data-dfn-type="element-attr" data-export="" id="element-attrdef-col-charoff"><code>charoff</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-26">col</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="col" data-dfn-type="element-attr" data-export="" id="element-attrdef-col-valign"><code>valign</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-27">col</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="col" data-dfn-type="element-attr" data-export="" id="element-attrdef-col-width"><code>width</code><a class="self-link" href="obsolete.html#element-attrdef-col-width"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-28">col</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="div" data-dfn-type="element-attr" data-export="" id="element-attrdef-div-align"><code>align</code></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-div" id="ref-for-elementdef-div-35">div</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="dl" data-dfn-type="element-attr" data-export="" id="element-attrdef-dl-compact"><code>compact</code><a class="self-link" href="obsolete.html#element-attrdef-dl-compact"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-dl" id="ref-for-elementdef-dl-28">dl</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="embed" data-dfn-type="element-attr" data-export="" id="element-attrdef-embed-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-embed-align"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-55">embed</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="embed" data-dfn-type="element-attr" data-export="" id="element-attrdef-embed-hspace"><code>hspace</code><a class="self-link" href="obsolete.html#element-attrdef-embed-hspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-56">embed</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="embed" data-dfn-type="element-attr" data-export="" id="element-attrdef-embed-vspace"><code>vspace</code><a class="self-link" href="obsolete.html#element-attrdef-embed-vspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-57">embed</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="hr" data-dfn-type="element-attr" data-export="" id="element-attrdef-hr-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-hr-align"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-21">hr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="hr" data-dfn-type="element-attr" data-export="" id="element-attrdef-hr-color"><code>color</code><a class="self-link" href="obsolete.html#element-attrdef-hr-color"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-22">hr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="hr" data-dfn-type="element-attr" data-export="" id="element-attrdef-hr-noshade"><code>noshade</code><a class="self-link" href="obsolete.html#element-attrdef-hr-noshade"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-23">hr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="hr" data-dfn-type="element-attr" data-export="" id="element-attrdef-hr-size"><code>size</code><a class="self-link" href="obsolete.html#element-attrdef-hr-size"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-24">hr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="hr" data-dfn-type="element-attr" data-export="" id="element-attrdef-hr-width"><code>width</code><a class="self-link" href="obsolete.html#element-attrdef-hr-width"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-25">hr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="headings" data-dfn-type="element-attr" data-export="" id="element-attrdef-headings-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-headings-align"></a></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-h1" id="ref-for-elementdef-h1-14">h1</a></code>—<code><a data-link-type="element" href="sections.html#elementdef-h6" id="ref-for-elementdef-h6-9">h6</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-iframe-align"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-82">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-allowtransparency"><code>allowtransparency</code><a class="self-link" href="obsolete.html#element-attrdef-iframe-allowtransparency"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-83">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-frameborder"><code>frameborder</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-84">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-framespacing"><code>framespacing</code><a class="self-link" href="obsolete.html#element-attrdef-iframe-framespacing"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-85">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-hspace"><code>hspace</code><a class="self-link" href="obsolete.html#element-attrdef-iframe-hspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-86">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-marginheight"><code>marginheight</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-87">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-marginwidth"><code>marginwidth</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-88">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-scrolling"><code>scrolling</code><a class="self-link" href="obsolete.html#element-attrdef-iframe-scrolling"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-89">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="iframe" data-dfn-type="element-attr" data-export="" id="element-attrdef-iframe-vspace"><code>vspace</code><a class="self-link" href="obsolete.html#element-attrdef-iframe-vspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-90">iframe</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="input" data-dfn-type="element-attr" data-export="" id="element-attrdef-input-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-input-align"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-340">input</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="input" data-dfn-type="element-attr" data-export="" id="element-attrdef-input-border"><code>border</code><a class="self-link" href="obsolete.html#element-attrdef-input-border"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-341">input</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="input" data-dfn-type="element-attr" data-export="" id="element-attrdef-input-hspace"><code>hspace</code><a class="self-link" href="obsolete.html#element-attrdef-input-hspace"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-342">input</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="input" data-dfn-type="element-attr" data-export="" id="element-attrdef-input-vspace"><code>vspace</code><a class="self-link" href="obsolete.html#element-attrdef-input-vspace"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-343">input</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="img" data-dfn-type="element-attr" data-export="" id="element-attrdef-img-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-img-align"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-181">img</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="img" data-dfn-type="element-attr" data-export="" id="element-attrdef-img-border"><code>border</code></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-182">img</a></code> elements (except as noted in the previous section)</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="img" data-dfn-type="element-attr" data-export="" id="element-attrdef-img-hspace"><code>hspace</code><a class="self-link" href="obsolete.html#element-attrdef-img-hspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-183">img</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="img" data-dfn-type="element-attr" data-export="" id="element-attrdef-img-vspace"><code>vspace</code><a class="self-link" href="obsolete.html#element-attrdef-img-vspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-184">img</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="legend" data-dfn-type="element-attr" data-export="" id="element-attrdef-legend-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-legend-align"></a></dfn> on <code><a data-link-type="element" href="sec-forms.html#elementdef-legend" id="ref-for-elementdef-legend-23">legend</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="li" data-dfn-type="element-attr" data-export="" id="element-attrdef-li-type"><code>type</code><a class="self-link" href="obsolete.html#element-attrdef-li-type"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-li" id="ref-for-elementdef-li-38">li</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="menu" data-dfn-type="element-attr" data-export="" id="element-attrdef-menu-compact"><code>compact</code><a class="self-link" href="obsolete.html#element-attrdef-menu-compact"></a></dfn> on <code><a data-link-type="element" href="interactive-elements.html#elementdef-menu" id="ref-for-elementdef-menu-42">menu</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-object-align"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-107">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-border"><code>border</code><a class="self-link" href="obsolete.html#element-attrdef-object-border"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-108">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-hspace"><code>hspace</code><a class="self-link" href="obsolete.html#element-attrdef-object-hspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-109">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="object" data-dfn-type="element-attr" data-export="" id="element-attrdef-object-vspace"><code>vspace</code><a class="self-link" href="obsolete.html#element-attrdef-object-vspace"></a></dfn> on <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-110">object</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="ol" data-dfn-type="element-attr" data-export="" id="element-attrdef-ol-compact"><code>compact</code><a class="self-link" href="obsolete.html#element-attrdef-ol-compact"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-ol" id="ref-for-elementdef-ol-19">ol</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="p" data-dfn-type="element-attr" data-export="" id="element-attrdef-p-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-p-align"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-p" id="ref-for-elementdef-p-74">p</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="pre" data-dfn-type="element-attr" data-export="" id="element-attrdef-pre-width"><code>width</code><a class="self-link" href="obsolete.html#element-attrdef-pre-width"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-pre" id="ref-for-elementdef-pre-21">pre</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-table-align"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-120">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-bgcolor"><code>bgcolor</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-121">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-border"><code>border</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-122">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-bordercolor"><code>bordercolor</code><a class="self-link" href="obsolete.html#element-attrdef-table-bordercolor"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-123">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-cellpadding"><code>cellpadding</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-124">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-cellspacing"><code>cellspacing</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-125">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-frame"><code>frame</code><a class="self-link" href="obsolete.html#element-attrdef-table-frame"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-126">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-height"><code>height</code><a class="self-link" href="obsolete.html#element-attrdef-table-height"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-127">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-rules"><code>rules</code><a class="self-link" href="obsolete.html#element-attrdef-table-rules"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-128">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="table" data-dfn-type="element-attr" data-export="" id="element-attrdef-table-width"><code>width</code><a class="self-link" href="obsolete.html#element-attrdef-table-width"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-129">table</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="tbody,thead,tfoot,tablesection" data-dfn-type="element-attr" data-export="" id="element-attrdef-tbody-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-tbody-align"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-71">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-60">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-62">tfoot</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tbody,thead,tfoot,tablesection" data-dfn-type="element-attr" data-export="" id="element-attrdef-tbody-char"><code>char</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-72">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-61">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-63">tfoot</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tbody,thead,tfoot,tablesection" data-dfn-type="element-attr" data-export="" id="element-attrdef-tbody-charoff"><code>charoff</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-73">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-62">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-64">tfoot</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tbody,thead,tfoot,tablesection" data-dfn-type="element-attr" data-export="" id="element-attrdef-tbody-valign"><code>valign</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-74">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-63">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-65">tfoot</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-td-align"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-53">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-66">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-bgcolor"><code>bgcolor</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-54">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-67">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-char"><code>char</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-55">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-68">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-charoff"><code>charoff</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-56">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-69">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-height"><code>height</code><a class="self-link" href="obsolete.html#element-attrdef-td-height"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-57">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-70">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-nowrap"><code>nowrap</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-58">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-71">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-valign"><code>valign</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-59">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-72">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="td,th,tablecells" data-dfn-type="element-attr" data-export="" id="element-attrdef-td-width"><code>width</code><a class="self-link" href="obsolete.html#element-attrdef-td-width"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-60">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-73">th</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="tr" data-dfn-type="element-attr" data-export="" id="element-attrdef-tr-align"><code>align</code><a class="self-link" href="obsolete.html#element-attrdef-tr-align"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-91">tr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tr" data-dfn-type="element-attr" data-export="" id="element-attrdef-tr-bgcolor"><code>bgcolor</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-92">tr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tr" data-dfn-type="element-attr" data-export="" id="element-attrdef-tr-char"><code>char</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-93">tr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tr" data-dfn-type="element-attr" data-export="" id="element-attrdef-tr-charoff"><code>charoff</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-94">tr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="tr" data-dfn-type="element-attr" data-export="" id="element-attrdef-tr-height"><code>height</code><a class="self-link" href="obsolete.html#element-attrdef-tr-height"></a></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-95">tr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="tr" data-dfn-type="element-attr" data-export="" id="element-attrdef-tr-valign"><code>valign</code></dfn> on <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-96">tr</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="ul" data-dfn-type="element-attr" data-export="" id="element-attrdef-ul-compact"><code>compact</code><a class="self-link" href="obsolete.html#element-attrdef-ul-compact"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-ul" id="ref-for-elementdef-ul-23">ul</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn data-dfn-for="ul" data-dfn-type="element-attr" data-export="" id="element-attrdef-ul-type"><code>type</code><a class="self-link" href="obsolete.html#element-attrdef-ul-type"></a></dfn> on <code><a data-link-type="element" href="grouping-content.html#elementdef-ul" id="ref-for-elementdef-ul-24">ul</a></code> elements</p>
     </dt><dt data-md="">
      <p><dfn class="dfn-paneled" data-dfn-for="body,table,thead,tbody,tfoot,tr,td,th,common" data-dfn-type="element-attr" data-export="" id="element-attrdef-body-background"><code>background</code></dfn> on <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-143">body</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-130">table</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-64">thead</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-75">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-66">tfoot</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-97">tr</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-61">td</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-74">th</a></code> elements</p>
     </dt><dd data-md="">
      <p>Use CSS instead.</p>
    </dd></dl>
    <hr>
    <p>The <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-table-border" id="ref-for-element-attrdef-table-border-1">border</a></code> attribute on the <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-131">table</a></code> element can be used to provide basic  fallback
  styling for the purpose of making tables legible in browsing environments where CSS support is
  limited or absent, such as text-based browsers, WYSIWYG editors, and in situations where CSS
  support is disabled or the style sheet is lost. Only the empty string and the value
  "<code>1</code>" may be used as <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-table-border" id="ref-for-element-attrdef-table-border-2">border</a></code> values for this purpose. Other values are
  considered obsolete. To regulate the thickness of such borders, authors should instead use CSS.</p>
    <h3 class="heading settled" data-level="11.3" id="requirements-for-implementations"><span class="secno">11.3. </span><span class="content">Requirements for implementations</span><a class="self-link" href="obsolete.html#requirements-for-implementations"></a></h3>
    <h4 class="heading settled" data-level="11.3.1" id="the-applet-element"><span class="secno">11.3.1. </span><span class="content">The <dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-applet"><code>applet</code></dfn> element</span><a class="self-link" href="obsolete.html#the-applet-element"></a></h4>
    <p class="critical"> This feature is in the process of being removed from the Web platform. (This is a long process
    that takes many years.) Using the <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-18">applet</a></code> element at this time is highly
    discouraged. </p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-19">applet</a></code> element is a Java-specific variant of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-58">embed</a></code> element.
  The <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-20">applet</a></code> element is now obsoleted so that all extension frameworks (Java, .NET,
  Flash, etc) are handled in a consistent manner.</p>
    <p>When the element matches any of the following conditions, it <a data-link-type="dfn" href="dom.html#represent" id="ref-for-represent-191">represents</a> its contents:</p>
    <ul>
     <li data-md="">
      <p>The element is still in the <a data-link-type="dfn" href="syntax.html#stack-of-open-elements" id="ref-for-stack-of-open-elements-205">stack of open elements</a> of an <a data-link-type="dfn" href="syntax.html#html-parser" id="ref-for-html-parser-55">HTML parser</a> or <a data-link-type="dfn" href="xhtml.html#xml-parser" id="ref-for-xml-parser-34">XML parser</a>.</p>
     </li><li data-md="">
      <p>The element is not <a data-link-type="dfn" href="infrastructure.html#in-the-document" id="ref-for-in-the-document-26">in a <code>Document</code></a>.</p>
     </li><li data-md="">
      <p>The element’s <a data-link-type="dfn" href="https://www.w3.org/TR/dom/#concept-node-document">node document</a> is not <a data-link-type="dfn" href="browsers.html#fully-active" id="ref-for-fully-active-37">fully active</a>.</p>
     </li><li data-md="">
      <p>The element’s <a data-link-type="dfn" href="https://www.w3.org/TR/dom/#concept-node-document">node document</a>’s <a data-link-type="dfn" href="browsers.html#active-sandboxing-flag-set" id="ref-for-active-sandboxing-flag-set-29">active sandboxing flag set</a> has its <a data-link-type="dfn" href="browsers.html#sandboxed-plugins-browsing-context-flag" id="ref-for-sandboxed-plugins-browsing-context-flag-5">sandboxed
plugins browsing context flag</a> set.</p>
     </li><li data-md="">
      <p>The element has an ancestor <a data-link-type="dfn" href="semantics-embedded-content.html#media-element" id="ref-for-media-element-256">media element</a>.</p>
     </li><li data-md="">
      <p>The element has an ancestor <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-111">object</a></code> element that is <em>not</em> showing its <a data-link-type="dfn" href="dom.html#fallback-content" id="ref-for-fallback-content-20">fallback content</a>.</p>
     </li><li data-md="">
      <p>No Java Language runtime <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-93">plugin</a> is available.</p>
     </li><li data-md="">
      <p>A Java runtime <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-94">plugin</a> is available but it is disabled.</p>
    </li></ul>
    <p>Otherwise, the user agent should instantiate a Java Language runtime <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-95">plugin</a>, and should
  pass the names and values of all the attributes on the element, in the order they were added to
  the element, with the attributes added by the parser being ordered in source order, and then a
  parameter named "PARAM" whose value is null, and then all the names and values of <a data-link-type="dfn" href="semantics-embedded-content.html#parameter" id="ref-for-parameter-4">parameters</a> given by <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-15">param</a></code> elements that are children of the <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-21">applet</a></code> element, in <a data-link-type="dfn" href="infrastructure.html#tree-order" id="ref-for-tree-order-83">tree order</a>, to the <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-96">plugin</a> used. If the <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-97">plugin</a> supports a scriptable interface, the <code>HTMLAppletElement</code> object representing the
  element should expose that interface. The <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-22">applet</a></code> element <a data-link-type="dfn" href="dom.html#represent" id="ref-for-represent-192">represents</a> the <a data-link-type="dfn" href="infrastructure.html#plugin" id="ref-for-plugin-98">plugin</a>.</p>
    <p class="note" role="note"> The <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-23">applet</a></code> element is unaffected by the CSS <a class="property" data-link-type="propdesc" href="https://www.w3.org/TR/CSS21/visuren.html#propdef-display">display</a> property. The
    Java Language runtime is instantiated even if the element is hidden with a 'display:none' CSS
    style. </p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-24">applet</a></code> element must implement the <code>HTMLAppletElement</code> interface.</p>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">interface</span> <dfn class="nv idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="interface" data-export="" id="htmlappletelement-htmlappletelement">HTMLAppletElement<a class="self-link" href="obsolete.html#htmlappletelement-htmlappletelement"></a></dfn> : <a class="n" data-link-type="idl-name" href="dom.html#htmlelement-htmlelement" id="ref-for-htmlelement-htmlelement-111">HTMLElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-align" id="ref-for-dom-htmlappletelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-alt" id="ref-for-dom-htmlappletelement-alt-1">alt</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-archive" id="ref-for-dom-htmlappletelement-archive-1">archive</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-code" id="ref-for-dom-htmlappletelement-code-1">code</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-codebase" id="ref-for-dom-htmlappletelement-codebase-1">codeBase</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-height" id="ref-for-dom-htmlappletelement-height-1">height</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlappletelement-hspace" id="ref-for-dom-htmlappletelement-hspace-1">hspace</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-name" id="ref-for-dom-htmlappletelement-name-1">name</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <dfn class="nv dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" data-type="DOMString" id="dom-htmlappletelement-_object">_object</dfn>; // the underscore is not part of the identifier
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlappletelement-vspace" id="ref-for-dom-htmlappletelement-vspace-1">vspace</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlappletelement-width" id="ref-for-dom-htmlappletelement-width-1">width</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-align"><code>align</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-alt"><code>alt</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-archive"><code>archive</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-code"><code>code</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-height"><code>height</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-hspace"><code>hspace</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-name"><code>name</code></dfn>, <dfn class="idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-object"><code>object</code><a class="self-link" href="obsolete.html#dom-htmlappletelement-object"></a></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-vspace"><code>vspace</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-width"><code>width</code></dfn> IDL attributes must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-120">reflect</a> the respective content attributes of the same name. For the purposes of reflection, the <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-25">applet</a></code> element’s <code class="idl"><a data-link-type="idl" href="obsolete.html#dom-htmlappletelement-_object" id="ref-for-dom-htmlappletelement-_object-1">object</a></code> content attribute is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAppletElement" data-dfn-type="attribute" data-export="" id="dom-htmlappletelement-codebase"><code>codeBase</code></dfn> IDL attribute must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-121">reflect</a> the <code>codebase</code> content attribute, which for the purposes of reflection
  is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <h4 class="heading settled" data-level="11.3.2" id="the-marquee-element"><span class="secno">11.3.2. </span><span class="content">The <dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-marquee"><code>marquee</code></dfn> element</span><a class="self-link" href="obsolete.html#the-marquee-element"></a></h4>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-24">marquee</a></code> element is a presentational element that animates content. CSS transitions and
  animations are a more appropriate mechanism. <a data-link-type="biblio" href="references.html#biblio-css3-animations">[CSS3-ANIMATIONS]</a> <a data-link-type="biblio" href="references.html#biblio-css3-transitions">[CSS3-TRANSITIONS]</a></p>
    <p>The <a data-link-type="dfn" href="webappapis.html#task-source" id="ref-for-task-source-44">task source</a> for tasks mentioned in this section is the <a data-link-type="dfn" href="webappapis.html#dom-manipulation-task-source" id="ref-for-dom-manipulation-task-source-18">DOM manipulation task source</a>.</p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-25">marquee</a></code> element must implement the <code>HTMLMarqueeElement</code> interface.</p>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">interface</span> <dfn class="nv idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="interface" data-export="" id="htmlmarqueeelement-htmlmarqueeelement">HTMLMarqueeElement<a class="self-link" href="obsolete.html#htmlmarqueeelement-htmlmarqueeelement"></a></dfn> : <a class="n" data-link-type="idl-name" href="dom.html#htmlelement-htmlelement" id="ref-for-htmlelement-htmlelement-112">HTMLElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlmarqueeelement-behavior" id="ref-for-dom-htmlmarqueeelement-behavior-1">behavior</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlmarqueeelement-bgcolor" id="ref-for-dom-htmlmarqueeelement-bgcolor-1">bgColor</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlmarqueeelement-direction" id="ref-for-dom-htmlmarqueeelement-direction-1">direction</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlmarqueeelement-height" id="ref-for-dom-htmlmarqueeelement-height-1">height</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlmarqueeelement-hspace" id="ref-for-dom-htmlmarqueeelement-hspace-1">hspace</a>;
  <span class="kt">attribute</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="long" href="obsolete.html#dom-htmlmarqueeelement-loop" id="ref-for-dom-htmlmarqueeelement-loop-1">loop</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlmarqueeelement-scrollamount" id="ref-for-dom-htmlmarqueeelement-scrollamount-1">scrollAmount</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlmarqueeelement-scrolldelay" id="ref-for-dom-htmlmarqueeelement-scrolldelay-1">scrollDelay</a>;
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlmarqueeelement-truespeed" id="ref-for-dom-htmlmarqueeelement-truespeed-1">trueSpeed</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlmarqueeelement-vspace" id="ref-for-dom-htmlmarqueeelement-vspace-1">vspace</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlmarqueeelement-width" id="ref-for-dom-htmlmarqueeelement-width-1">width</a>;

  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-92">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-htmlmarqueeelement-onbounce" id="ref-for-dom-htmlmarqueeelement-onbounce-1">onbounce</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-93">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-htmlmarqueeelement-onfinish" id="ref-for-dom-htmlmarqueeelement-onfinish-1">onfinish</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-94">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-htmlmarqueeelement-onstart" id="ref-for-dom-htmlmarqueeelement-onstart-1">onstart</a>;

  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-htmlmarqueeelement-start" id="ref-for-dom-htmlmarqueeelement-start-1">start</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-htmlmarqueeelement-stop" id="ref-for-dom-htmlmarqueeelement-stop-1">stop</a>();
};
</pre>
    <p>A <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-26">marquee</a></code> element can be <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="turned-on">turned on</dfn> or <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="turned-off">turned off</dfn>. When it is created, it
  is <a data-link-type="dfn" href="obsolete.html#turned-on" id="ref-for-turned-on-5">turned on</a>.</p>
    <p>When the <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="method" data-export="" id="dom-htmlmarqueeelement-start"><code>start()</code></dfn> method is called, the <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-27">marquee</a></code> element must be <a data-link-type="dfn" href="obsolete.html#turned-on" id="ref-for-turned-on-6">turned on</a>.</p>
    <p>When the <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="method" data-export="" id="dom-htmlmarqueeelement-stop"><code>stop()</code></dfn> method is called, the <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-28">marquee</a></code> element must be <a data-link-type="dfn" href="obsolete.html#turned-off" id="ref-for-turned-off-1">turned off</a>.</p>
    <p>When a <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-29">marquee</a></code> element is created, the user agent must <a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-141">queue a task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-161">fire a simple event</a> named <code>start</code> at the element.</p>
    <hr>
    <p>The <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="element-attr" data-export="" id="element-attrdef-marquee-behavior"><code>behavior</code></dfn> content attribute on <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-30">marquee</a></code> elements is an <a data-link-type="dfn" href="infrastructure.html#enumerated-attributes" id="ref-for-enumerated-attributes-24">enumerated attribute</a> with the following keywords (all non-conforming):</p>
    <table>
     <thead>
      <tr>
       <th>Keyword
       </th><th>State
     </th></tr></thead><tbody>
      <tr>
       <td><dfn data-dfn-for="marquee/behavior" data-dfn-type="attr-value" data-export="" id="attr-valuedef-marquee-behavior-scroll"><code>scroll</code><a class="self-link" href="obsolete.html#attr-valuedef-marquee-behavior-scroll"></a></dfn>
       </td><td><dfn class="dfn-paneled" data-dfn-for="marquee/behavior" data-dfn-type="state" data-export="" id="statedef-marquee-behavior-scroll">scroll</dfn>
      </td></tr><tr>
       <td><dfn data-dfn-for="marquee/behavior" data-dfn-type="attr-value" data-export="" id="attr-valuedef-marquee-behavior-slide"><code>slide</code><a class="self-link" href="obsolete.html#attr-valuedef-marquee-behavior-slide"></a></dfn>
       </td><td><dfn class="dfn-paneled" data-dfn-for="marquee/behavior" data-dfn-type="state" data-export="" id="statedef-marquee-behavior-slide">slide</dfn>
      </td></tr><tr>
       <td><dfn data-dfn-for="marquee/behavior" data-dfn-type="attr-value" data-export="" id="attr-valuedef-marquee-behavior-alternate"><code>alternate</code><a class="self-link" href="obsolete.html#attr-valuedef-marquee-behavior-alternate"></a></dfn>
       </td><td><dfn class="dfn-paneled" data-dfn-for="marquee/behavior" data-dfn-type="state" data-export="" id="statedef-marquee-behavior-alternate">alternate</dfn>
    </td></tr></tbody></table>
    <p>The <i>missing value default</i> is the <a data-link-type="state" href="obsolete.html#statedef-marquee-behavior-scroll" id="ref-for-statedef-marquee-behavior-scroll-2">scroll</a> state.</p>
    <hr>
    <p>The <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="element-attr" data-export="" id="element-attrdef-marquee-direction"><code>direction</code></dfn> content attribute on <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-31">marquee</a></code> elements is an <a data-link-type="dfn" href="infrastructure.html#enumerated-attributes" id="ref-for-enumerated-attributes-25">enumerated attribute</a> with the following keywords (all non-conforming):</p>
    <table>
     <thead>
      <tr>
       <th>Keyword
       </th><th>State
     </th></tr></thead><tbody>
      <tr>
       <td><a data-link-type="attr-value" href="rendering.html#attr-valuedef-marquee-direction-left" id="ref-for-attr-valuedef-marquee-direction-left-4"><code>left</code></a>
       </td><td><dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="state" data-export="" id="statedef-marquee-left">left</dfn>
      </td></tr><tr>
       <td><a data-link-type="attr-value" href="rendering.html#attr-valuedef-marquee-direction-right" id="ref-for-attr-valuedef-marquee-direction-right-1"><code>right</code></a>
       </td><td><dfn data-dfn-for="marquee" data-dfn-type="state" data-export="" id="statedef-marquee-right">right<a class="self-link" href="obsolete.html#statedef-marquee-right"></a></dfn>
      </td></tr><tr>
       <td><a data-link-type="attr-value" href="rendering.html#attr-valuedef-marquee-direction-up" id="ref-for-attr-valuedef-marquee-direction-up-2"><code>up</code></a>
       </td><td><dfn data-dfn-for="marquee" data-dfn-type="state" data-export="" id="statedef-marquee-up">up<a class="self-link" href="obsolete.html#statedef-marquee-up"></a></dfn>
      </td></tr><tr>
       <td><a data-link-type="attr-value" href="rendering.html#attr-valuedef-marquee-direction-down" id="ref-for-attr-valuedef-marquee-direction-down-2"><code>down</code></a>
       </td><td><dfn data-dfn-for="marquee" data-dfn-type="state" data-export="" id="statedef-marquee-down">down<a class="self-link" href="obsolete.html#statedef-marquee-down"></a></dfn>
    </td></tr></tbody></table>
    <p>The <i>missing value default</i> is the <a data-link-type="state" href="obsolete.html#statedef-marquee-left" id="ref-for-statedef-marquee-left-1">left</a> state.</p>
    <hr>
    <p>The <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="element-attr" data-export="" id="element-attrdef-marquee-truespeed"><code>truespeed</code></dfn> content attribute on <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-32">marquee</a></code> elements is a <a data-link-type="dfn" href="infrastructure.html#boolean-attribute" id="ref-for-boolean-attribute-34">boolean attribute</a>.</p>
    <hr>
    <p>A <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-33">marquee</a></code> element has a <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="marquee-scroll-interval">marquee scroll interval</dfn>, which is obtained as follows:</p>
    <ol>
     <li data-md="">
      <p>If the element has a <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="element-attr" data-export="" id="element-attrdef-marquee-scrolldelay"><code>scrolldelay</code></dfn> content
  attribute, and parsing its value using the <a data-link-type="dfn" href="infrastructure.html#parse-that-attributes-value" id="ref-for-parse-that-attributes-value-32">rules for parsing non-negative integers</a> does
  not return an error, then let <var>delay</var> be the parsed value. Otherwise, let <var>delay</var> be 85.</p>
     </li><li data-md="">
      <p>If the element does not have a <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-marquee-truespeed" id="ref-for-element-attrdef-marquee-truespeed-1">truespeed</a></code> attribute, and the <var>delay</var> value
  is less than 60, then let <var>delay</var> be 60 instead.</p>
     </li><li data-md="">
      <p>The <a data-link-type="dfn" href="obsolete.html#marquee-scroll-interval" id="ref-for-marquee-scroll-interval-2">marquee scroll interval</a> is <var>delay</var>, interpreted in milliseconds.</p>
    </li></ol>
    <hr>
    <p>A <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-34">marquee</a></code> element has a <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="dfn" data-noexport="" id="marquee-marquee-scroll-distance">marquee scroll distance</dfn>, which, if the
  element has a <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="element-attr" data-export="" id="element-attrdef-marquee-scrollamount"><code>scrollamount</code></dfn> content attribute,
  and parsing its value using the <a data-link-type="dfn" href="infrastructure.html#parse-that-attributes-value" id="ref-for-parse-that-attributes-value-33">rules for parsing non-negative integers</a> does not return an
  error, is the parsed value interpreted in CSS pixels, and otherwise is 6 CSS pixels.</p>
    <hr>
    <p>A <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-35">marquee</a></code> element has a <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="marquee-loop-count">marquee loop count</dfn>, which, if the element has a <dfn class="dfn-paneled" data-dfn-for="marquee" data-dfn-type="element-attr" data-export="" id="element-attrdef-marquee-loop"><code>loop</code></dfn> content attribute, and parsing its value
  using the <a data-link-type="dfn" href="infrastructure.html#parse-token-as-an-integer" id="ref-for-parse-token-as-an-integer-8">rules for parsing integers</a> does not return an error or a number less than 1, is
  the parsed value, and otherwise is -1.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-loop"><code>loop</code></dfn> IDL attribute, on getting,
  must return the element’s <a data-link-type="dfn" href="obsolete.html#marquee-loop-count" id="ref-for-marquee-loop-count-1">marquee loop count</a>; and on setting, if the new value is different
  than the element’s <a data-link-type="dfn" href="obsolete.html#marquee-loop-count" id="ref-for-marquee-loop-count-2">marquee loop count</a> and either greater than zero or equal to -1, must set
  the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-marquee-loop" id="ref-for-element-attrdef-marquee-loop-1">loop</a></code> content attribute (adding it if necessary) to the <a data-link-type="dfn" href="infrastructure.html#valid-integer" id="ref-for-valid-integer-16">valid integer</a> that represents the new value. (Other values are ignored.)</p>
    <p>A <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-36">marquee</a></code> element also has a <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="marquee-current-loop-index">marquee current loop index</dfn>, which is zero when the
  element is created.</p>
    <p>The rendering layer will occasionally <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="increment-the-marquee-current-loop-index">increment the marquee current loop index</dfn>, which
  must cause the following steps to be run:</p>
    <ol>
     <li data-md="">
      <p>If the <a data-link-type="dfn" href="obsolete.html#marquee-loop-count" id="ref-for-marquee-loop-count-3">marquee loop count</a> is -1, then abort these steps.</p>
     </li><li data-md="">
      <p>Increment the <a data-link-type="dfn" href="obsolete.html#marquee-current-loop-index" id="ref-for-marquee-current-loop-index-3">marquee current loop index</a> by one.</p>
     </li><li data-md="">
      <p>If the <a data-link-type="dfn" href="obsolete.html#marquee-current-loop-index" id="ref-for-marquee-current-loop-index-4">marquee current loop index</a> is now equal to or greater than the element’s <a data-link-type="dfn" href="obsolete.html#marquee-loop-count" id="ref-for-marquee-loop-count-4">marquee loop count</a>, <a data-link-type="dfn" href="obsolete.html#turned-off" id="ref-for-turned-off-2">turn off</a> the <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-37">marquee</a></code> element and <a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-142">queue a task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-162">fire a simple event</a> named <a class="idl-code" data-link-type="event" href="obsolete.html#eventdef-marquee-finish" id="ref-for-eventdef-marquee-finish-1"><code>finish</code></a> at
  the <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-38">marquee</a></code> element.</p>
      <p>Otherwise, if the <code class="idl"><a data-link-type="idl" href="obsolete.html#dom-htmlmarqueeelement-behavior" id="ref-for-dom-htmlmarqueeelement-behavior-2">behavior</a></code> attribute is in the <a data-link-type="state" href="obsolete.html#statedef-marquee-behavior-alternate" id="ref-for-statedef-marquee-behavior-alternate-2">alternate</a> state, then <a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-143">queue a task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-163">fire a
  simple event</a> named <a class="idl-code" data-link-type="event" href="obsolete.html#eventdef-marquee-bounce" id="ref-for-eventdef-marquee-bounce-1"><code>bounce</code></a> at the <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-39">marquee</a></code> element.</p>
      <p>Otherwise, <a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-144">queue a task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-164">fire a simple event</a> named <a class="idl-code" data-link-type="event" href="obsolete.html#eventdef-marquee-start" id="ref-for-eventdef-marquee-start-1"><code>start</code></a> at the <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-40">marquee</a></code> element.</p>
    </li></ol>
    <hr>
    <p>The following are the <a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-47">event handlers</a> (and their corresponding <a data-link-type="dfn" href="webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type-19">event handler event types</a>) that must be supported, as <a data-link-type="dfn" href="webappapis.html#event-handler-content-event-handler-content-attribute" id="ref-for-event-handler-content-event-handler-content-attribute-19">event handler content attributes</a> and <a data-link-type="dfn" href="webappapis.html#event-handler-idl-event-handler-idl-attribute" id="ref-for-event-handler-idl-event-handler-idl-attribute-24">event handler IDL attributes</a>, by <code><a data-link-type="element" href="obsolete.html#elementdef-marquee" id="ref-for-elementdef-marquee-41">marquee</a></code> elements:</p>
    <table>
     <thead>
      <tr>
       <th><a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-48">Event handler</a>
       </th><th><a data-link-type="dfn" href="webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type-20">Event handler event type</a>
     </th></tr></thead><tbody>
      <tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-onbounce"><code>onbounce</code></dfn>
       </td><td><dfn class="dfn-paneled idl-code" data-dfn-for="marquee" data-dfn-type="event" data-export="" id="eventdef-marquee-bounce"><code>bounce</code></dfn>
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-onfinish"><code>onfinish</code></dfn>
       </td><td><dfn class="dfn-paneled idl-code" data-dfn-for="marquee" data-dfn-type="event" data-export="" id="eventdef-marquee-finish"><code>finish</code></dfn>
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-onstart"><code>onstart</code></dfn>
       </td><td><dfn class="dfn-paneled idl-code" data-dfn-for="marquee" data-dfn-type="event" data-export="" id="eventdef-marquee-start"><code>start</code></dfn>
    </td></tr></tbody></table>
    <hr>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-behavior"><code>behavior</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-direction"><code>direction</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-height"><code>height</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-hspace"><code>hspace</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-vspace"><code>vspace</code></dfn>,
  and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-width"><code>width</code></dfn> IDL attributes must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-122">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-bgcolor"><code>bgColor</code></dfn> IDL attribute must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-123">reflect</a> the <code>bgcolor</code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-scrollamount"><code>scrollAmount</code></dfn> IDL attribute must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-124">reflect</a> the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-marquee-scrollamount" id="ref-for-element-attrdef-marquee-scrollamount-1">scrollamount</a></code> content attribute. The default value is 6.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-scrolldelay"><code>scrollDelay</code></dfn> IDL attribute must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-125">reflect</a> the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-marquee-scrolldelay" id="ref-for-element-attrdef-marquee-scrolldelay-1">scrolldelay</a></code> content attribute. The default value is 85.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMarqueeElement" data-dfn-type="attribute" data-export="" id="dom-htmlmarqueeelement-truespeed"><code>trueSpeed</code></dfn> IDL attribute must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-126">reflect</a> the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-marquee-truespeed" id="ref-for-element-attrdef-marquee-truespeed-2">truespeed</a></code> content attribute.</p>
    <h4 class="heading settled" data-level="11.3.3" id="frames"><span class="secno">11.3.3. </span><span class="content">Frames</span><a class="self-link" href="obsolete.html#frames"></a></h4>
    <p>The <dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-frameset"><code>frameset</code></dfn> element acts as the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-144">body</a></code> element in documents
  that use frames.</p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-24">frameset</a></code> element must implement the <code>HTMLFrameSetElement</code> interface.</p>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">interface</span> <dfn class="nv dfn-paneled idl-code" data-dfn-for="HTMLFrameSetElement" data-dfn-type="interface" data-export="" id="htmlframesetelement-htmlframesetelement">HTMLFrameSetElement</dfn> : <a class="n" data-link-type="idl-name" href="dom.html#htmlelement-htmlelement" id="ref-for-htmlelement-htmlelement-113">HTMLElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <dfn class="nv idl-code" data-dfn-for="HTMLFrameSetElement" data-dfn-type="attribute" data-export="" data-type="DOMString" id="dom-htmlframesetelement-cols">cols<a class="self-link" href="obsolete.html#dom-htmlframesetelement-cols"></a></dfn>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <dfn class="nv idl-code" data-dfn-for="HTMLFrameSetElement" data-dfn-type="attribute" data-export="" data-type="DOMString" id="dom-htmlframesetelement-rows">rows<a class="self-link" href="obsolete.html#dom-htmlframesetelement-rows"></a></dfn>;
};
<a class="n" data-link-type="idl-name" href="obsolete.html#htmlframesetelement-htmlframesetelement" id="ref-for-htmlframesetelement-htmlframesetelement-1">HTMLFrameSetElement</a> <span class="kt">implements</span> <a class="n" data-link-type="idl-name" href="webappapis.html#windoweventhandlers-windoweventhandlers" id="ref-for-windoweventhandlers-windoweventhandlers-3">WindowEventHandlers</a>;
</pre>
    <p>The <dfn data-dfn-for="frameset" data-dfn-type="element-attr" data-export="" id="element-attrdef-frameset-cols"><code>cols</code><a class="self-link" href="obsolete.html#element-attrdef-frameset-cols"></a></dfn> and <dfn data-dfn-for="frameset" data-dfn-type="element-attr" data-export="" id="element-attrdef-frameset-rows"><code>rows</code><a class="self-link" href="obsolete.html#element-attrdef-frameset-rows"></a></dfn> IDL attributes of the <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-25">frameset</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-127">reflect</a> the respective content attributes of the same name.</p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-26">frameset</a></code> element exposes as <a data-link-type="dfn" href="webappapis.html#event-handler-content-event-handler-content-attribute" id="ref-for-event-handler-content-event-handler-content-attribute-20">event handler content attributes</a> a number of the <a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-49">event handlers</a> of the <code>Window</code> object. It also mirrors their <a data-link-type="dfn" href="webappapis.html#event-handler-idl-event-handler-idl-attribute" id="ref-for-event-handler-idl-event-handler-idl-attribute-25">event handler IDL attributes</a>.</p>
    <p>The <a class="idl-code" data-link-type="attribute" href="webappapis.html#dom-globaleventhandlers-onblur" id="ref-for-dom-globaleventhandlers-onblur-2"><code>onblur</code></a>, <a class="idl-code" data-link-type="attribute" href="webappapis.html#dom-globaleventhandlers-onerror" id="ref-for-dom-globaleventhandlers-onerror-4"><code>onerror</code></a>, <a class="idl-code" data-link-type="attribute" href="webappapis.html#dom-globaleventhandlers-onfocus" id="ref-for-dom-globaleventhandlers-onfocus-2"><code>onfocus</code></a>, <a class="idl-code" data-link-type="attribute" href="webappapis.html#dom-globaleventhandlers-onload" id="ref-for-dom-globaleventhandlers-onload-5"><code>onload</code></a>, <a class="idl-code" data-link-type="attribute" href="webappapis.html#dom-globaleventhandlers-onresize" id="ref-for-dom-globaleventhandlers-onresize-2"><code>onresize</code></a>, and <a class="idl-code" data-link-type="attribute" href="webappapis.html#dom-globaleventhandlers-onscroll" id="ref-for-dom-globaleventhandlers-onscroll-2"><code>onscroll</code></a> <a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-50">event handlers</a> of the <code class="idl"><a data-link-type="idl" href="browsers.html#window-window" id="ref-for-window-window-68">Window</a></code> object, exposed on the <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-27">frameset</a></code> element, replace the generic <a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-51">event handlers</a> with the same names normally supported by <a data-link-type="dfn" href="infrastructure.html#html-element" id="ref-for-html-element-94">html elements</a>.</p>
    <hr>
    <p>The <dfn class="dfn-paneled" data-dfn-type="element" data-export="" id="elementdef-frame"><code>frame</code></dfn> element defines a <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-90">nested browsing context</a> similar
  to the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-91">iframe</a></code> element, but rendered within a <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-28">frameset</a></code> element.</p>
    <p>A <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-14">frame</a></code> element is said to be an <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="active-frame-element">active <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-15">frame</a></code> element</dfn> when it is <a data-link-type="dfn" href="infrastructure.html#in-the-document" id="ref-for-in-the-document-27">in a <code>Document</code></a>.</p>
    <p>When a <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-16">frame</a></code> element is created as an <a data-link-type="dfn" href="obsolete.html#active-frame-element" id="ref-for-active-frame-element-1">active <code>frame</code> element</a>, or becomes an <a data-link-type="dfn" href="obsolete.html#active-frame-element" id="ref-for-active-frame-element-2">active <code>frame</code> element</a> after not having been one, the user agent must create a <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-91">nested browsing context</a>, and then <a data-link-type="dfn" href="obsolete.html#process-the-frame-attributes" id="ref-for-process-the-frame-attributes-1">process the <code>frame</code> attributes</a> for the
  first time.</p>
    <p>When a <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-17">frame</a></code> element stops being an <a data-link-type="dfn" href="obsolete.html#active-frame-element" id="ref-for-active-frame-element-3">active <code>frame</code> element</a>, the
  user agent must <a data-link-type="dfn" href="browsers.html#a-browsing-context-is-discarded" id="ref-for-a-browsing-context-is-discarded-11">discard</a> the <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-92">nested browsing context</a>.</p>
    <p>Whenever a <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-18">frame</a></code> element with a <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-93">nested browsing context</a> has its <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-frame-src" id="ref-for-element-attrdef-frame-src-1">src</a></code> attribute
  set, changed, or removed, the user agent must <a data-link-type="dfn" href="obsolete.html#process-the-frame-attributes" id="ref-for-process-the-frame-attributes-2">process the <code>frame</code> attributes</a>.</p>
    <p>When the user agent is to <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="process-the-frame-attributes">process the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-19">frame</a></code> attributes</dfn>, it must run the
  first appropriate steps from the following list:</p>
    <dl class="switch">
     <dt> If the element has no <dfn class="dfn-paneled" data-dfn-for="frame" data-dfn-type="element-attr" data-export="" id="element-attrdef-frame-src"><code>src</code></dfn> attribute
      specified, and the user agent is processing the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-20">frame</a></code>'s attributes for the first time 
     </dt><dd> <a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-145">Queue a task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-165">fire a simple event</a> named <a class="idl-code" data-link-type="event" href="fullindex.html#eventdef-global-load" id="ref-for-eventdef-global-load-2"><code>load</code></a> at the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-21">frame</a></code> element. 
     </dd><dt>Otherwise
     </dt><dd>
      <ol>
       <li data-md="">
        <p>If the value of the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-frame-src" id="ref-for-element-attrdef-frame-src-2">src</a></code> attribute is the empty string, let <var>url</var> be
  the string "<code>about:blank</code>".</p>
        <p>Otherwise, <a data-link-type="dfn" href="https://www.w3.org/2001/tag/doc/promises-guide/#resolve-promise">resolve</a> the value of the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-frame-src" id="ref-for-element-attrdef-frame-src-3">src</a></code> attribute, relative to the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-22">frame</a></code> element.</p>
        <p>If that is not successful, then let <var>url</var> be the string
  "<code>about:blank</code>". Otherwise, let <var>url</var> be the resulting <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a>.</p>
       </li><li data-md="">
        <p><a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-98">Navigate</a> the element’s <a data-link-type="dfn" href="browsers.html#child-browsing-context" id="ref-for-child-browsing-context-26">child browsing context</a>to <var>url</var>.</p>
      </li></ol>
    </dd></dl>
    <p>Furthermore, if the <a data-link-type="dfn" href="browsers.html#active-document" id="ref-for-active-document-113">active document</a> of the element’s <a data-link-type="dfn" href="browsers.html#child-browsing-context" id="ref-for-child-browsing-context-27">child browsing context</a> before
  such a <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-99">navigation</a> was not <a data-link-type="dfn" href="syntax.html#completely-loaded" id="ref-for-completely-loaded-9">completely loaded</a> at the time of the new <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-100">navigation</a>, then the <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-101">navigation</a> must be completed  with <a data-link-type="dfn" href="browsers.html#replacement-must-be-enabled" id="ref-for-replacement-must-be-enabled-25">replacement enabled</a>.</p>
    <p>Similarly, if the <a data-link-type="dfn" href="browsers.html#child-browsing-context" id="ref-for-child-browsing-context-28">child browsing context</a>’s <a data-link-type="dfn" href="browsers.html#session-history" id="ref-for-session-history-27">session history</a> contained only one <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> when the <a data-link-type="dfn" href="obsolete.html#process-the-frame-attributes" id="ref-for-process-the-frame-attributes-3">process the <code>frame</code> attributes</a> algorithm was
  invoked, and that was the <code>about:blank</code> <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> created when the <a data-link-type="dfn" href="browsers.html#child-browsing-context" id="ref-for-child-browsing-context-29">child
  browsing context</a> was created, then any <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-102">navigation</a> required of the user agent in that
  algorithm must be completed with <a data-link-type="dfn" href="browsers.html#replacement-must-be-enabled" id="ref-for-replacement-must-be-enabled-26">replacement enabled</a>.</p>
    <p>When a <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> in a <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-23">frame</a></code> is marked as <a data-link-type="dfn" href="syntax.html#completely-loaded" id="ref-for-completely-loaded-10">completely loaded</a>, the user agent
  must <a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-146">queue a task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-166">fire a simple event</a> named <a class="idl-code" data-link-type="event" href="fullindex.html#eventdef-global-load" id="ref-for-eventdef-global-load-3"><code>load</code></a> at the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-24">frame</a></code> element.</p>
    <p>The <a data-link-type="dfn" href="webappapis.html#task-source" id="ref-for-task-source-45">task source</a> for the <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-126">tasks</a> above is the <a data-link-type="dfn" href="webappapis.html#dom-manipulation-task-source" id="ref-for-dom-manipulation-task-source-19">DOM manipulation task source</a>.</p>
    <p>When a <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-25">frame</a></code> element’s <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-94">nested browsing context</a>’s <a data-link-type="dfn" href="browsers.html#active-document" id="ref-for-active-document-114">active document</a> is not <a data-link-type="dfn" href="syntax.html#ready-for-post-load-tasks" id="ref-for-ready-for-post-load-tasks-9">ready for post-load tasks</a>, and when anything is <a data-link-type="dfn" href="syntax.html#delay-the-load-event" id="ref-for-delay-the-load-event-31">delaying the load event</a> of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-26">frame</a></code> element’s <a data-link-type="dfn" href="browsers.html#browsing-context" id="ref-for-browsing-context-333">browsing context</a>’s <a data-link-type="dfn" href="browsers.html#active-document" id="ref-for-active-document-115">active document</a>, and when the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-27">frame</a></code> element’s <a data-link-type="dfn" href="browsers.html#browsing-context" id="ref-for-browsing-context-334">browsing context</a> is in the <a data-link-type="dfn" href="browsers.html#delaying-load-events-mode" id="ref-for-delaying-load-events-mode-6">delaying <code>load</code> events mode</a>, the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-28">frame</a></code> must <a data-link-type="dfn" href="syntax.html#delay-the-load-event" id="ref-for-delay-the-load-event-32">delay the load event</a> of its document.</p>
    <p>When the browsing context is created, if a <dfn class="dfn-paneled" data-dfn-for="frame" data-dfn-type="element-attr" data-export="" id="element-attrdef-frame-name"><code>name</code></dfn> content attribute is present, the <a data-link-type="dfn" href="browsers.html#browsing-context-name" id="ref-for-browsing-context-name-19">browsing context name</a> must be set to the value of this
  attribute; otherwise, the <a data-link-type="dfn" href="browsers.html#browsing-context-name" id="ref-for-browsing-context-name-20">browsing context name</a> must be set to the empty string.</p>
    <p>Whenever the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-frame-name" id="ref-for-element-attrdef-frame-name-1">name</a></code> attribute is set, the nested <a data-link-type="dfn" href="browsers.html#browsing-context" id="ref-for-browsing-context-335">browsing context</a>’s <a data-link-type="dfn" href="browsers.html#browsing-context-name" id="ref-for-browsing-context-name-21">name</a> must be changed to the new value. If the attribute is
  removed, the <a data-link-type="dfn" href="browsers.html#browsing-context-name" id="ref-for-browsing-context-name-22">browsing context name</a> must be set to the empty string.</p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-29">frame</a></code> element must implement the <code class="idl"><a data-link-type="idl" href="obsolete.html#htmlframeelement-htmlframeelement" id="ref-for-htmlframeelement-htmlframeelement-1">HTMLFrameElement</a></code> interface.</p>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">interface</span> <dfn class="nv dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="interface" data-export="" id="htmlframeelement-htmlframeelement">HTMLFrameElement</dfn> : <a class="n" data-link-type="idl-name" href="dom.html#htmlelement-htmlelement" id="ref-for-htmlelement-htmlelement-114">HTMLElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-name" id="ref-for-dom-htmlframeelement-name-1">name</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-scrolling" id="ref-for-dom-htmlframeelement-scrolling-1">scrolling</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-src" id="ref-for-dom-htmlframeelement-src-1">src</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-frameborder" id="ref-for-dom-htmlframeelement-frameborder-1">frameBorder</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-longdesc" id="ref-for-dom-htmlframeelement-longdesc-1">longDesc</a>;
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlframeelement-noresize" id="ref-for-dom-htmlframeelement-noresize-1">noResize</a>;
  <span class="kt">readonly</span> <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/dom/#document">Document</a>? <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="Document?" href="obsolete.html#dom-htmlframeelement-contentdocument" id="ref-for-dom-htmlframeelement-contentdocument-1">contentDocument</a>;
  <span class="kt">readonly</span> <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="browsers.html#windowproxy" id="ref-for-windowproxy-37">WindowProxy</a>? <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="WindowProxy?" href="obsolete.html#dom-htmlframeelement-contentwindow" id="ref-for-dom-htmlframeelement-contentwindow-1">contentWindow</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-marginheight" id="ref-for-dom-htmlframeelement-marginheight-1">marginHeight</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlframeelement-marginwidth" id="ref-for-dom-htmlframeelement-marginwidth-1">marginWidth</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-name"><code>name</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-scrolling"><code>scrolling</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-src"><code>src</code></dfn> IDL attributes of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-30">frame</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-128">reflect</a> the respective content attributes of the same name. For the purposes
  of reflection, the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-31">frame</a></code> element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-frame-src" id="ref-for-element-attrdef-frame-src-4">src</a></code> content attribute is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-frameborder"><code>frameBorder</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-32">frame</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-129">reflect</a> the element’s <code>frameborder</code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-longdesc"><code>longDesc</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-33">frame</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-130">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-iframe-longdesc" id="ref-for-element-attrdef-iframe-longdesc-1">longdesc</a></code> content attribute, which
  for the purposes of reflection is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-noresize"><code>noResize</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-34">frame</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-131">reflect</a> the element’s <code>noresize</code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-contentdocument"><code>contentDocument</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-35">frame</a></code> element must return the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> object of the <a data-link-type="dfn" href="browsers.html#active-document" id="ref-for-active-document-116">active document</a> of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-36">frame</a></code> element’s <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-95">nested browsing context</a>, if any and if its <a data-link-type="dfn" href="browsers.html#concept-cross-origin" id="ref-for-concept-cross-origin-99">origin</a> is the <a data-link-type="dfn" href="browsers.html#same-origin-domain" id="ref-for-same-origin-domain-10">same origin-domain</a> as the <a data-link-type="dfn" href="browsers.html#concept-cross-origin" id="ref-for-concept-cross-origin-100">origin</a> specified by the <a data-link-type="dfn" href="webappapis.html#incumbent-settings-object" id="ref-for-incumbent-settings-object-19">incumbent settings object</a>, or null otherwise.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-contentwindow"><code>contentWindow</code></dfn> IDL attribute must
  return the <code>WindowProxy</code> object of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-37">frame</a></code> element’s <a data-link-type="dfn" href="browsers.html#nested-browsing-contexts" id="ref-for-nested-browsing-contexts-96">nested browsing context</a>.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-marginheight"><code>marginHeight</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-38">frame</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-132">reflect</a> the element’s <code>marginheight</code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmlframeelement-marginwidth"><code>marginWidth</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-frame" id="ref-for-elementdef-frame-39">frame</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-133">reflect</a> the element’s <code>marginwidth</code> content attribute.</p>
    <h4 class="heading settled" data-level="11.3.4" id="application-caches"><span class="secno">11.3.4. </span><span class="content">Application caches</span><a class="self-link" href="obsolete.html#application-caches"></a></h4>
    <p>An <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="application cache manifest|application cache" data-noexport="" id="application-cache-manifest">application cache</dfn> is a set of cached resources consisting of:</p>
    <ul>
     <li>
      <p>One or more resources (including their out-of-band metadata, such as HTTP headers, if any),
    identified by URLs, each falling into one (or more) of the following categories:</p>
      <dl>
       <dt><dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="master|master entries" data-noexport="" id="master">Master entries</dfn> 
       </dt><dd>
        <p class="note" role="note"> These are documents that were added to the cache because a <a data-link-type="dfn" href="browsers.html#browsing-context" id="ref-for-browsing-context-336">browsing
      context</a> was <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-103">navigated</a> to that document and the document
      indicated that this was its cache, using the <code>manifest</code> attribute. </p>
       </dd><dt><dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="the manifest|manifest" data-noexport="" id="the-manifest">The manifest</dfn> 
       </dt><dd>
        <p class="note" role="note"> This is the resource corresponding to the URL that was given in a master
      entry’s <code><a data-link-type="element" href="semantics.html#elementdef-html" id="ref-for-elementdef-html-95">html</a></code> element’s <code>manifest</code> attribute.
      The manifest is fetched and processed during the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-1">application cache download
      process</a>. All the <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-1">master entries</a> have the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-31">same origin</a> as the manifest. </p>
       </dd><dt><dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="an explicit entry|explicit entries" data-noexport="" id="an-explicit-entry">Explicit entries</dfn> 
       </dt><dd>
        <p class="note" role="note"> These are the resources that were listed in the cache’s <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-1">manifest</a> in an <a data-link-type="dfn">explicit section</a>. </p>
       </dd><dt><dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="a fallback entry|fallback entries" data-noexport="" id="a-fallback-entry">Fallback entries</dfn> 
       </dt><dd>
        <p class="note" role="note"> These are the resources that were listed in the cache’s <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-2">manifest</a> in a <a data-link-type="dfn">fallback section</a>. </p>
      </dd></dl>
      <p><a data-link-type="dfn" href="obsolete.html#an-explicit-entry" id="ref-for-an-explicit-entry-1">Explicit entries</a> and <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-1">Fallback entries</a> can be marked as <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="foreign">foreign</dfn>, which means that they have a <code>manifest</code> attribute but that it doesn’t point at this cache’s <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-3">manifest</a>.</p>
      <p class="note" role="note"> A URL in the list can be flagged with multiple different types, and thus an
    entry can end up being categorized as multiple entries. For example, an entry can be a manifest
    entry and an explicit entry at the same time, if the manifest is listed within the manifest. </p>
     </li><li>
      <p>Zero or more <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="fallback-namespaces">fallback namespaces</dfn>, each of
    which is mapped to a <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-2">fallback entry</a>.</p>
      <p class="note" role="note"> These are URLs used as <a data-link-type="dfn" href="obsolete.html#matches-the-fallback-namespace" id="ref-for-matches-the-fallback-namespace-1">prefix
    match patterns</a> for resources that are to be fetched from the network if possible, or to
    be replaced by the corresponding <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-3">fallback entry</a> if not. Each namespace URL has the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-32">same origin</a> as <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-4">the manifest</a>. </p>
     </li><li>
      <p>Zero or more URLs that form the <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="online safelist namespaces" data-noexport="" id="online-safelist-namespaces">online
    safelist namespaces</dfn>.</p>
      <p class="note" role="note"> These are used as prefix match patterns, and declare URLs for which the user
    agent will ignore the application cache, instead fetching them normally (i.e., from the network
    or local HTTP cache as appropriate). </p>
     </li><li>
      <p>An <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="online safelist wildcard flag" data-noexport="" id="online-safelist-wildcard-flag">online safelist wildcard
    flag</dfn>, which is either <i>open</i> or <i>blocking</i>.</p>
      <p class="note" role="note"> The <i>open</i> state indicates that any URL not listed as cached is to
    be implicitly treated as being in the <a data-link-type="dfn" href="obsolete.html#online-safelist-namespaces" id="ref-for-online-safelist-namespaces-1">online
    safelist namespaces</a>; the <i>blocking</i> state indicates that URLs not listed
    explicitly in the manifest are to be treated as unavailable. </p>
     </li><li>
      <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="application cache mode|cache mode flag" data-noexport="" id="application-cache-mode">cache mode flag</dfn>, which is either in the <dfn data-dfn-type="dfn" data-noexport="" id="fast"><i>fast</i><a class="self-link" href="obsolete.html#fast"></a></dfn> state or the <dfn data-dfn-type="dfn" data-noexport="" id="prefer-online"><i>prefer-online</i><a class="self-link" href="obsolete.html#prefer-online"></a></dfn> state.</p>
    </li></ul>
    <p>Each <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-3">application cache</a> has a <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="completeness-flag">completeness flag</dfn>, which is either <i>complete</i> or <i>incomplete</i>.</p>
    <hr>
    <p>An <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="application-cache-group">application cache group</dfn> is a group of <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-4">application
  caches</a>, identified by the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a> of a resource <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-5">manifest</a> which is used to populate the caches in the
  group.</p>
    <p>An <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-5">application cache</a> is <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="newest|newer" data-noexport="" id="newest">newer</dfn> than
  another if it was created after the other (in other words, <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-6">application caches</a> in an <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-1">application cache group</a> have a chronological
  order).</p>
    <p>Only the newest <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-7">application cache</a> in an <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-2">application cache group</a> can
  have its <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-1">completeness flag</a> set to <i>incomplete</i>; the others are always all <i>complete</i>.</p>
    <p>Each <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-3">application cache group</a> has an <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="update-status">update status</dfn>, which is one of the following: <i>idle</i>, <i>checking</i>, <i>downloading</i>.</p>
    <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="relevant-application-cache">relevant application cache</dfn> is an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-8">application cache</a> that is the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-1">newest</a> in its <a data-link-type="dfn" href="tabular-data.html#column-group" id="ref-for-column-group-15">group</a> to be <i>complete</i>.</p>
    <p>Each <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-4">application cache group</a> has a <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="list-of-pending-master-entries">list of pending master entries</dfn>. Each entry in this
  list consists of a resource and a corresponding <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> object. It is used during
  the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-2">application cache download process</a> to ensure that new master entries are cached
  even if the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-3">application cache download process</a> was already running for their <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-5">application cache group</a> when they were loaded.</p>
    <p>An <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-6">application cache group</a> can be marked as <dfn class="dfn-paneled" data-dfn-for="ApplicationCache" data-dfn-type="dfn" data-noexport="" id="applicationcache-obsolete">obsolete</dfn>, meaning that it must be ignored when looking at
  what <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-7">application cache groups</a> exist.</p>
    <hr>
    <p>A <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="cache-host">cache host</dfn> is a <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> or a <code>SharedWorkerGlobalScope</code> object. A <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-1">cache host</a> can be associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-9">application cache</a>.</p>
    <p><a data-link-type="biblio" href="references.html#biblio-webworkers">[WEBWORKERS]</a></p>
    <p>A <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> initially is not associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-10">application cache</a>, but
  can become associated with one early during the page load process, when steps <a data-link-type="dfn" href="syntax.html#in-the-html-parser" id="ref-for-in-the-html-parser-1">in the parser</a> and in the <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-104">navigation</a> sections cause <a data-link-type="dfn" href="obsolete.html#has-an-effect" id="ref-for-has-an-effect-5">cache selection</a> to occur.</p>
    <p>A <code>SharedWorkerGlobalScope</code> can be associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-11">application cache</a> when it is created.</p>
    <p><a data-link-type="biblio" href="references.html#biblio-webworkers">[WEBWORKERS]</a></p>
    <p>Each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-2">cache host</a> has an associated <code>ApplicationCache</code> object.</p>
    <hr>
    <p>Multiple <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-12">application caches</a> in different <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-8">application cache groups</a> can contain the same resource,
  e.g., if the manifests all reference that resource. If the user agent is to <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="most appropriate application cache|select an application cache" data-noexport="" id="most-appropriate-application-cache">select an application cache</dfn> from a list of <a data-link-type="dfn" href="obsolete.html#relevant-application-cache" id="ref-for-relevant-application-cache-1">relevant application caches</a> that contain a resource, the
  user agent must use the application cache that the user most likely wants to see the resource
  from, taking into account the following:</p>
    <ul>
     <li>which application cache was most recently updated, 
     </li><li>which application cache was being used to display the resource from which the user decided to
    look at the new resource, and 
     </li><li>which application cache the user prefers. 
    </li></ul>
    <hr>
    <p>A URL <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="matches the fallback namespace|matches a fallback namespace|prefix match patterns" data-noexport="" id="matches-the-fallback-namespace">matches a fallback namespace</dfn> if
  there exists a <a data-link-type="dfn" href="obsolete.html#relevant-application-cache" id="ref-for-relevant-application-cache-2">relevant application cache</a> whose <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-6">manifest</a>’s URL has the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-33">same origin</a> as the
  URL in question, and that has a <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-1">fallback
  namespace</a> that is a <a data-link-type="dfn" href="infrastructure.html#prefix-match" id="ref-for-prefix-match-1">prefix match</a> for the URL being examined. If multiple
  fallback namespaces match the same URL, the longest one is the one that matches. A URL looking for
  a fallback namespace can match more than one application cache at a time, but only matches one
  namespace in each cache.</p>
    <h5 class="heading settled" data-level="11.3.4.1" id="parsing-cache-manifests"><span class="secno">11.3.4.1. </span><span class="content">Parsing cache manifests</span><a class="self-link" href="obsolete.html#parsing-cache-manifests"></a></h5>
    <p>When a user agent is to <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="rules for parsing manifests|parse a manifest" data-noexport="" id="rules-for-parsing-manifests">parse a manifest</dfn>, it means that the user agent must run the
  following steps:</p>
    <ol>
     <li>
      <p><a data-link-type="dfn" href="infrastructure.html#utf-8-decode" id="ref-for-utf-8-decode-4">UTF-8 decode</a> the byte stream corresponding with the manifest to be parsed.</p>
      <p class="note" role="note"> The <a data-link-type="dfn" href="infrastructure.html#utf-8-decode" id="ref-for-utf-8-decode-5">UTF-8 decode</a> algorithm strips a leading BOM, if any. </p>
     </li><li>Let <var>base URL</var> be the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a> representing the
    manifest.
     </li><li>Apply the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">URL parser</a> to <var>base URL</var>, and let <var>manifest path</var> be the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-path">path</a> component thus obtained.
     </li><li>Remove all the characters in <var>manifest path</var> after the last U+002F SOLIDUS
    character (/), if any. (The first character and the last character in <var>manifest path</var> after this step will both be slashes, the URL path separator character.)
     </li><li>Apply the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">URL parser</a> steps to the <var>base URL</var>, so that the
    components from its <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url">URL record</a> can be used by the subsequent steps of this
    algorithm.
     </li><li>Let <var>explicit URLs</var> be an initially empty list of <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URLs</a> for <a data-link-type="dfn" href="obsolete.html#an-explicit-entry" id="ref-for-an-explicit-entry-2">explicit
    entries</a>.
     </li><li>Let <var>fallback URLs</var> be an initially empty mapping of <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-2">fallback namespaces</a> to <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URLs</a> for <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-4">fallback
    entries</a>.
     </li><li>Let <var>online safelist namespaces</var> be an initially empty list of <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URLs</a> for an <a data-link-type="dfn">online safelist</a>.
     </li><li>Let <var>online safelist wildcard flag</var> be <i>blocking</i>. 
     </li><li>Let <var>cache mode flag</var> be <i>fast</i>. 
     </li><li>Let <var>input</var> be the decoded text of the manifest’s byte stream.
     </li><li>Let <var>position</var> be a pointer into <var>input</var>, initially
    pointing at the first character.
     </li><li>If the characters starting from <var>position</var> are "CACHE", followed by a
    U+0020 SPACE character, followed by "MANIFEST", then advance <var>position</var> to the
    next character after those. Otherwise, this isn’t a cache manifest; abort this algorithm with a
    failure while checking for the magic signature.
     </li><li>If the character at <var>position</var> is neither a U+0020 SPACE character, a
    U+0009 CHARACTER TABULATION (tab) character, U+000A LINE FEED (LF) character, nor a U+000D
    CARRIAGE RETURN (CR) character, then this isn’t a cache manifest; abort this algorithm with a
    failure while checking for the magic signature.
     </li><li>This is a cache manifest. The algorithm cannot fail beyond
    this point (though bogus lines can get ignored).
     </li><li><a data-link-type="dfn" href="infrastructure.html#collect-a-sequence-of-characters" id="ref-for-collect-a-sequence-of-characters-36">Collect a sequence of characters</a> that are <em>not</em> U+000A LINE FEED (LF)
    or U+000D CARRIAGE RETURN (CR) characters, and ignore those characters. (Extra text on the first
    line, after the signature, is ignored.)
     </li><li>Let <var>mode</var> be "explicit".
     </li><li><var>Start of line</var>: If <var>position</var> is past the end of <var>input</var>, then jump to the last step. Otherwise, <a data-link-type="dfn" href="infrastructure.html#collect-a-sequence-of-characters" id="ref-for-collect-a-sequence-of-characters-37">collect a sequence of
    characters</a> that are U+000A LINE FEED (LF), U+000D CARRIAGE RETURN (CR), U+0020 SPACE, or
    U+0009 CHARACTER TABULATION (tab) characters.
     </li><li>Now, <a data-link-type="dfn" href="infrastructure.html#collect-a-sequence-of-characters" id="ref-for-collect-a-sequence-of-characters-38">collect a sequence of characters</a> that are <em>not</em> U+000A LINE FEED
    (LF) or U+000D CARRIAGE RETURN (CR) characters, and let the result be <var>line</var>.
     </li><li>Drop any trailing U+0020 SPACE and U+0009 CHARACTER TABULATION (tab) characters at the end
    of <var>line</var>.
     </li><li>If <var>line</var> is the empty string, then jump back to the step labeled <i>start
    of line</i>.
     </li><li>If the first character in <var>line</var> is a U+0023 NUMBER SIGN character (#),
    then jump back to the step labeled <var>Start of line</var>.
     </li><li>If <var>line</var> equals "CACHE:" (the word "CACHE" followed by a U+003A COLON
    character (:)), then set <var>mode</var> to "explicit" and jump back to the step labeled <var>Start of line</var>.
     </li><li>If <var>line</var> equals "FALLBACK:" (the word "FALLBACK" followed by a U+003A
    COLON character (:)), then set <var>mode</var> to "fallback" and jump back to the step
    labeled <var>Start of line</var>.
     </li><li>If <var>line</var> equals "NETWORK:" (the word "NETWORK" followed by a U+003A
    COLON character (:)), then set <var>mode</var> to "online safelist" and jump back to
    the step labeled <var>Start of line</var>.
     </li><li>If <var>line</var> equals "SETTINGS:" (the word "SETTINGS" followed by a U+003A
    COLON character (:)), then set <var>mode</var> to "settings" and jump back to the step
    labeled <var>Start of line</var>.
     </li><li>If <var>line</var> ends with a U+003A COLON character (:), then set <var>mode</var> to "unknown" and jump back to the step labeled <var>Start of line</var>.
     </li><li>This is either a data line or it is syntactically incorrect.
     </li><li>Let <var>position</var> be a pointer into <var>line</var>, initially
    pointing at the start of the string.
     </li><li>Let <var>tokens</var> be a list of strings, initially empty.
     </li><li>
      <p>While <var>position</var> doesn’t point past the end of <var>line</var>:</p>
      <ol>
       <li>Let <var>current token</var> be an empty string.
       </li><li>While <var>position</var> doesn’t point past the end of <var>line</var> and the character at <var>position</var> is neither a U+0020 SPACE
      nor a U+0009 CHARACTER TABULATION (tab) character, add the character at <var>position</var> to <var>current token</var> and advance <var>position</var> to the next character in <var>input</var>.
       </li><li>Add <var>current token</var> to the <var>tokens</var> list.
       </li><li>While <var>position</var> doesn’t point past the end of <var>line</var> and the character at <var>position</var> is either a U+0020 SPACE
      or a U+0009 CHARACTER TABULATION (tab) character, advance <var>position</var> to the
      next character in <var>input</var>.
      </li></ol>
     </li><li>
      <p>Process <var>tokens</var> as follows:</p>
      <dl class="switch">
       <dt>If <var>mode</var> is "explicit"
       </dt><dd>
        <p>Let <var>urlRecord</var> be the result of <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">parsing</a> the first item in <var>tokens</var>, with <var>base URL</var>; ignore the rest.</p>
        <p>If <var>urlRecord</var> is failure, then jump back to the step labeled <var>Start of line</var>.</p>
        <p>If <var>urlRecord</var> has a different <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-scheme">scheme</a> component than <var>base URL</var> (the manifest’s URL), then jump back to the step labeled <var>Start of line</var>.</p>
        <p>Let <var>new URL</var> be the result of applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-serializer">URL serializer</a> algorithm to <var>urlRecord</var>, with the <var>exclude fragment flag</var> set.</p>
        <p>Add <var>new URL</var> to the <var>explicit URLs</var>.</p>
       </dd><dt>If <var>mode</var> is "fallback"
       </dt><dd>
        Let <var>part one</var> be the first token in <var>tokens</var>, and let <var>part two</var> be the second token in <var>tokens</var>. 
        <p>Let <var>urlRecordOne</var> be the result of <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">parsing</a> <var>part one</var> with <var>base URL</var>.</p>
        <p>Let <var>urlRecordTwo</var> be the result of <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">parsing</a> <var>part two</var> with <var>base URL</var>.</p>
        <p>If either <var>urlRecordOne</var> or <var>urlRecordTwo</var> is failure, then jump back to the
      step labeled <var>Start of line</var>.</p>
        <p>If the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-origin">origin</a> of either <var>urlRecordOne</var> or <var>urlRecordTwo</var> is
      not <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-34">same origin</a> with the manifest’s URL <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-origin">origin</a>, then jump back to the
      step labeled <var>Start of line</var>.</p>
        <p>Let <var>part one path</var> be the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-path">path</a> component of <var>urlRecordOne</var>.</p>
        <p>If <var>manifest path</var> is not a <a data-link-type="dfn" href="infrastructure.html#prefix-match" id="ref-for-prefix-match-2">prefix match</a> for <var>part one path</var>, then
      jump back to the step labeled <var>Start of line</var>.</p>
        <p>Let <var>part one</var> be the result of applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-serializer">URL serializer</a> algorithm to <var>urlRecordOne</var>, with the <var>exclude fragment flag</var> set.</p>
        <p>Let <var>part two</var> be the result of applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-serializer">URL serializer</a> algorithm to <var>urlRecordTwo</var>, with the <var>exclude fragment flag</var> set.</p>
        <p>If <var>part one</var> is already in the <var>fallback URLs</var> mapping as a <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-3">fallback namespace</a>, then jump back to the step labeled <var>Start of line</var>.</p>
        <p>Otherwise, add <var>part one</var> to the <var>fallback URLs</var> mapping as a <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-4">fallback namespace</a>, mapped to <var>part two</var> as the <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-5">fallback entry</a>.</p>
       </dd><dt>If <var>mode</var> is "online safelist"
       </dt><dd>
        <p>If the first item in <var>tokens</var> is a U+002A ASTERISK character (*), then
      set <var>online safelist wildcard flag</var> to <i>open</i> and jump back
      to the step labeled <var>Start of line</var>.</p>
        <p>Otherwise, let <var>urlRecord</var> be the result of <a data-link-type="dfn" href="infrastructure.html#reparsed" id="ref-for-reparsed-51">parsing</a> the first item in <var>tokens</var> with <var>base URL</var>.</p>
        <p>If <var>urlRecord</var> is failure, then jump back to the step labeled <var>Start of line</var>.</p>
        <p>If <var>urlRecord</var> has a different <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-scheme">scheme</a> component than <var>base URL</var> (the
      manifest’s URL), then jump back to the step labeled <var>Start of line</var>.</p>
        <p>Let <var>new URL</var> be the result of applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-serializer">URL serializer</a> algorithm to <var>urlRecord</var>, with the <var>exclude fragment flag</var> set.</p>
        <p>Add <var>new URL</var> to the <var>online safelist namespaces</var>.</p>
       </dd><dt>If <var>mode</var> is "settings"
       </dt><dd>
        <p>If <var>tokens</var> contains a single token, and that token is a <a data-link-type="dfn" href="infrastructure.html#case-sensitive" id="ref-for-case-sensitive-31">case-sensitive</a> match for the string "<code>prefer-online</code>", then
      set <var>cache mode flag</var> to <i>prefer-online</i> and jump back to the
      step labeled <var>Start of line</var>.</p>
        <p>Otherwise, the line is an unsupported setting: do nothing; the line is ignored.</p>
       </dd><dt>If <var>mode</var> is "unknown"
       </dt><dd>
        <p>Do nothing. The line is ignored.</p>
      </dd></dl>
     </li><li>Jump back to the step labeled <var>Start of line</var>. (That step jumps to the next, and last,
    step when the end of the file is reached.)
     </li><li>Return the <var>explicit URLs</var> list, the <var>fallback URLs</var> mapping, the <var>online safelist namespaces</var>, the <var>online safelist
    wildcard flag</var>, and the <var>cache mode flag</var>.
    </li></ol>
    <h5 class="heading settled" data-level="11.3.4.2" id="downloading-or-updating-an-application-cache"><span class="secno">11.3.4.2. </span><span class="content">Downloading or updating an application cache</span><a class="self-link" href="obsolete.html#downloading-or-updating-an-application-cache"></a></h5>
    <p>When the user agent is required (by other parts of this specification) to start the <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="application-cache-download-process">application cache download process</dfn> for an <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a> purported to
  identify a <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-7">manifest</a>, or for an <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-9">application
  cache group</a>, potentially given a particular <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-3">cache host</a>, and potentially given
  a <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-2">master</a> resource, the user agent must run the steps
  below. These steps are always run <a data-link-type="dfn" href="infrastructure.html#in-parallel" id="ref-for-in-parallel-43">in parallel</a> with the <a data-link-type="dfn" href="webappapis.html#event-loop" id="ref-for-event-loop-92">event loop</a> <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-127">tasks</a>.</p>
    <p>Some of these steps have requirements that only apply if the user agent <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="shows caching progress" data-noexport="" id="shows-caching-progress">shows caching
  progress</dfn>. Support for this is optional. Certain events
  fired during the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-4">application cache download process</a> allow the script to override the
  display of such an interface. (Such events are delayed until after the <code>load</code> event has fired.)</p>
    <p>User agents are encouraged not to show
  prominent update progress notifications for applications that cancel the relevant events.</p>
    <p>The <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-5">application cache download process</a> steps are as follows:</p>
    <ol>
     <li>Optionally, wait until the permission to start the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-6">application cache download
    process</a> has been obtained from the user and until the user agent is confident that the
    network is available. This could include doing nothing until the user explicitly opts-in to
    caching the site, or could involve prompting the user for permission. The algorithm might never
    get past this point. (This step is particularly intended to be used by user agents running on
    severely space-constrained devices or in highly privacy-sensitive environments).
     </li><li>
      <p>Atomically, so as to avoid race conditions, perform the following substeps:</p>
      <ol>
       <li>
        <p>Pick the appropriate substeps:</p>
        <dl class="switch">
         <dt>If these steps were invoked with an <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a> purported to identify a <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-8">manifest</a>
         </dt><dd>
          <p>Let <var>manifest URL</var> be that <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a>.</p>
          <p>If there is no <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-10">application cache group</a> identified by <var>manifest
        URL</var>, then create a new <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-11">application cache group</a> identified by <var>manifest URL</var>. Initially, it has no <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-13">application caches</a>. One will be created later in this algorithm.</p>
         </dd><dt>If these steps were invoked with an <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-12">application cache group</a>
         </dt><dd>
          <p>Let <var>manifest URL</var> be the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a> of the <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-9">manifest</a> used to identify the <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-13">application
        cache group</a> to be updated.</p>
          <p>If that <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-14">application cache group</a> is <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-1">obsolete</a>, then abort this instance of the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-7">application cache download process</a>. This can happen if another instance of this
        algorithm found the manifest to be 404 or 410 while this algorithm was waiting in the first
        step above.</p>
        </dd></dl>
       </li><li>Let <var>cache group</var> be the <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-15">application cache group</a> identified by <var>manifest URL</var>.
       </li><li>If these steps were invoked with a <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-3">master</a> resource, then add the resource, along with the resource’s <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code>, to <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-1">list of pending
      master entries</a>.
       </li><li>If these steps were invoked with a <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-4">cache host</a>, and the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache group</var> is <i>checking</i> or <i>downloading</i>, then <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-1">queue a post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-167">fire a
      simple event</a> named <code>checking</code> that is
      cancelable at the <code>ApplicationCache</code> singleton of that <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-5">cache host</a>. The
      default action of this event must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-1">shows caching progress</a>,
      the display of some sort of user interface indicating to the user that the user agent is
      checking to see if it can download the application.
       </li><li>If these steps were invoked with a <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-6">cache host</a>, and the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache group</var> is <i>downloading</i>, then also <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-2">queue a post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-168">fire a simple
      event</a> named <code>downloading</code> that is
      cancelable at the <code>ApplicationCache</code> singleton of that <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-7">cache host</a>. The
      default action of this event must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-2">shows caching progress</a>,
      the display of some sort of user interface indicating to the user the application is being
      downloaded.
       </li><li>If the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of the <var>cache
      group</var> is either <i>checking</i> or <i>downloading</i>, then abort this instance of the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-8">application cache download process</a>, as an update is already in progress.
       </li><li>Set the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache
      group</var> to <i>checking</i>. 
       </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-8">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-14">application cache</a> in <var>cache group</var>, <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-3">queue a post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-169">fire a simple
      event</a> that is cancelable named <code>checking</code> at
      the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-9">cache host</a>. The default action
      of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-3">shows caching progress</a>, the display of
      some sort of user interface indicating to the user that the user agent is checking for the
      availability of updates.
      </li></ol>
      <p class="note" role="note"> The remainder of the steps run <a data-link-type="dfn" href="infrastructure.html#in-parallel" id="ref-for-in-parallel-44">in parallel</a>. </p>
      <p>If <var>cache group</var> already has an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-15">application cache</a> in it, then
    this is an <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="upgrade-attempt">upgrade attempt</dfn>. Otherwise, this is a <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="cache-attempt">cache attempt</dfn>.</p>
     </li><li>If this is a <a data-link-type="dfn" href="obsolete.html#cache-attempt" id="ref-for-cache-attempt-1">cache attempt</a>, then this
    algorithm was invoked with a <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-10">cache host</a>; <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-4">queue a post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-170">fire a simple event</a> named <code>checking</code> that
    is cancelable at the <code>ApplicationCache</code> singleton of that <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-11">cache host</a>. The
    default action of this event must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-4">shows caching progress</a>, the
    display of some sort of user interface indicating to the user that the user agent is checking for
    the availability of updates.
     </li><li>Let <var>request</var> be a new <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request">request</a> whose <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> is <var>manifest URL</var>, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-client">client</a> is null, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-destination">destination</a> is "<code>subresource</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#omit-origin-header-flag">omit-<code>Origin</code>-header flag</a> is set, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-referrer">referrer</a> is "<code>no-referrer</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#synchronous-flag">synchronous flag</a> is set, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-credentials-mode">credentials
    mode</a> is "<code>include</code>", and whose <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-use-url-credentials-flag">use-URL-credentials
    flag</a> is set.
     </li><li>
      <p><i>Fetching the manifest</i>: Let <var>manifest</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch">fetching</a> <var>request</var>. HTTP caching semantics should be
    honored for this request.</p>
      <p>Parse <var>manifest</var>’s <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-response-body">body</a> according to the <a data-link-type="dfn" href="obsolete.html#rules-for-parsing-manifests" id="ref-for-rules-for-parsing-manifests-1">rules for parsing manifests</a>, obtaining a list of <a data-link-type="dfn" href="obsolete.html#an-explicit-entry" id="ref-for-an-explicit-entry-3">explicit entries</a>, <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-6">fallback entries</a> and the <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-5">fallback namespaces</a> that map to them, entries for
    the <a data-link-type="dfn">online safelist</a>, and values for the <a data-link-type="dfn" href="obsolete.html#online-safelist-wildcard-flag" id="ref-for-online-safelist-wildcard-flag-1">online safelist wildcard flag</a> and the <a data-link-type="dfn" href="obsolete.html#application-cache-mode" id="ref-for-application-cache-mode-1">cache mode flag</a>.</p>
      <p class="note" role="note"> The <a data-link-type="dfn" href="infrastructure.html#mime-type" id="ref-for-mime-type-64">MIME type</a> of the resource is ignored — it is assumed to
    be <code>text/cache-manifest</code>. In the future, if new manifest formats are supported, the
    different types will probably be distinguished on the basis of the file signatures (for the
    current format, that is the "<code>CACHE&nbsp;MANIFEST</code>" string at the top of the
    file). </p>
     </li><li>
      <p>If <i>fetching the manifest</i> fails due to a 404 or 410 response status, then run these
    substeps:</p>
      <ol>
       <li>Mark <var>cache group</var> as <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-2">obsolete</a>. This <var>cache group</var> no
      longer exists for any purpose other than the processing of <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> objects
      already associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-16">application cache</a> in the <var>cache
      group</var>.
       </li><li>Let <var>task list</var> be an empty list of <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-128">tasks</a>. 
       </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-12">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-17">application cache</a> in <var>cache group</var>, create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-129">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-171">fire
      a simple event</a> named <code>obsolete</code> that is
      cancelable at the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-13">cache host</a>, and
      append it to <var>task list</var>. The default action of these events must be, if the
      user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-5">shows caching progress</a>, the display of some sort of user interface
      indicating to the user that the application is no longer available for offline use.
       </li><li>For each entry in <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-2">list of pending master entries</a>, create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-130">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-172">fire a simple event</a> that is cancelable named <code>error</code> (not <code>obsolete</code>!) at the <code>ApplicationCache</code> singleton of the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry, if there still is one, and append it to <var>task list</var>. The default action of this event must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-6">shows caching progress</a>, the display of some sort of user interface indicating to
      the user that the user agent failed to save the application for offline use.
       </li><li>If <var>cache group</var> has an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-18">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-2">completeness flag</a> is <i>incomplete</i>, then
      discard that <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-19">application cache</a>. 
       </li><li>If appropriate, remove any user interface indicating that an update for this cache is in
      progress.
       </li><li>Let the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache
      group</var> be <i>idle</i>.
       </li><li>For each <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-131">task</a> in <var>task list</var>, <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-5">queue that task as a post-load task</a>.
       </li><li>Abort the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-9">application cache download process</a>.
      </li></ol>
     </li><li>
      <p>Otherwise, if <i>fetching the manifest</i> fails in some other way (e.g., the server returns
    another 4xx or 5xx response, or there is a DNS error, or the connection times out, or the user
    cancels the download, or the parser for manifests fails when checking the magic signature), or
    if the server returned a redirect, then run the <a data-link-type="dfn" href="obsolete.html#cache-failure-steps" id="ref-for-cache-failure-steps-1">cache failure steps</a>. <a data-link-type="biblio" href="references.html#biblio-http">[HTTP]</a></p>
     </li><li>
      <p>If this is an <a data-link-type="dfn" href="obsolete.html#upgrade-attempt" id="ref-for-upgrade-attempt-1">upgrade attempt</a> and the newly
    downloaded <var>manifest</var> is byte-for-byte identical to the manifest found in the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-2">newest</a> <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-20">application cache</a> in <var>cache
    group</var>, or the response status is <code>304</code>, then run these substeps:</p>
      <ol>
       <li>Let <var>cache</var> be the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-3">newest</a> <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-21">application cache</a> in <var>cache group</var>.
       </li><li>Let <var>task list</var> be an empty list of <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-132">tasks</a>. 
       </li><li>
        <p>For each entry in <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-3">list of pending master entries</a>, wait for the
      resource for this entry to have either completely downloaded or failed.</p>
        <p>If the download failed (e.g., the server returns a 4xx or 5xx response, or there is a DNS
      error, the connection times out, or the user cancels the download), or if the resource is
      labeled with the "no-store" cache directive, then create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-133">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-173">fire a simple event</a> that is cancelable named <code>error</code> at the <code>ApplicationCache</code> singleton of the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry, if there still is one, and append it to <var>task list</var>. The default action of this event must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-7">shows
      caching progress</a>, the display of some sort of user interface indicating to the user
      that the user agent failed to save the application for offline use.</p>
        <p>Otherwise, associate the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry with <var>cache</var>; store the resource for this entry in <var>cache</var>, if it
      isn’t already there, and categorize its entry as a <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-4">master entry</a>. If applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">URL parser</a> algorithm to the resource’s <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> results in a <a data-link-type="dfn" href="infrastructure.html#resulting-url-record" id="ref-for-resulting-url-record-13">resulting URL record</a> that has a
      non-null <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-fragment">fragment</a> component, the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> used for the entry in <var>cache</var> must instead be the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#syntax-url-absolute">absolute URL</a> obtained from applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-serializer">URL serializer</a> algorithm to the <a data-link-type="dfn" href="infrastructure.html#resulting-url-record" id="ref-for-resulting-url-record-14">resulting URL record</a> with the <var>exclude fragment flag</var> set
      (application caches never include fragment identifiers).</p>
       </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-14">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-22">application cache</a> in <var>cache group</var>, create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-134">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-174">fire
      a simple event</a> that is cancelable named <code>noupdate</code> at the <code>ApplicationCache</code> singleton
      of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-15">cache host</a>, and append it to <var>task list</var>. The default
      action of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-8">shows caching progress</a>, the
      display of some sort of user interface indicating to the user that the application is up to
      date.
       </li><li>Empty <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-4">list of pending master entries</a>.
       </li><li>If appropriate, remove any user interface indicating that an update for this cache is in
      progress.
       </li><li>Let the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache
      group</var> be <i>idle</i>.
       </li><li>For each <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-135">task</a> in <var>task list</var>, <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-6">queue that task as a post-load task</a>.
       </li><li>Abort the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-10">application cache download process</a>.
      </li></ol>
     </li><li>Let <var>new cache</var> be a newly created <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-23">application cache</a> in <var>cache group</var>. Set its <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-3">completeness
    flag</a> to <i>incomplete</i>.
     </li><li>For each entry in <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-5">list of pending master entries</a>, associate the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry with <var>new cache</var>.
     </li><li>Set the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache
    group</var> to <i>downloading</i>.
     </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-16">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-24">application cache</a> in <var>cache group</var>, <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-7">queue a post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-175">fire a simple
    event</a> that is cancelable named <code>downloading</code> at the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-17">cache host</a>. The default action
    of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-9">shows caching progress</a>, the display of
    some sort of user interface indicating to the user that a new version is being
    downloaded.
     </li><li>Let <var>file list</var> be an empty list of URLs with flags.
     </li><li>Add all the URLs in the list of <a data-link-type="dfn" href="obsolete.html#an-explicit-entry" id="ref-for-an-explicit-entry-4">explicit
    entries</a> obtained by parsing <var>manifest</var> to <var>file list</var>,
    each flagged with "explicit entry".
     </li><li>Add all the URLs in the list of <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-7">fallback
    entries</a> obtained by parsing <var>manifest</var> to <var>file list</var>,
    each flagged with "fallback entry".
     </li><li>If this is an <a data-link-type="dfn" href="obsolete.html#upgrade-attempt" id="ref-for-upgrade-attempt-2">upgrade attempt</a>, then add all
    the URLs of <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-5">master entries</a> in the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-4">newest</a> <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-25">application cache</a> in <var>cache group</var> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-4">completeness
    flag</a> is <i>complete</i> to <var>file list</var>, each flagged with "master
    entry".
     </li><li>If any URL is in <var>file list</var> more than once, then merge the entries into
    one entry for that URL, that entry having all the flags that the original entries had.
     </li><li>
      <p>For each URL in <var>file list</var>, run the following steps. These steps may be
    run in parallel for two or more of the URLs at a time. If, while running these steps, the <code>ApplicationCache</code> object’s <code>abort()</code> method <a data-link-type="dfn" href="obsolete.html#sends-a-signal" id="ref-for-sends-a-signal-1">sends a signal</a> to this instance of the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-11">application
    cache download process</a> algorithm, then run the <a data-link-type="dfn" href="obsolete.html#cache-failure-steps" id="ref-for-cache-failure-steps-2">cache failure steps</a> instead.</p>
      <ol>
       <li>
        <p>If the resource URL being processed was flagged as neither an "explicit entry" nor or a
      "fallback entry", then the user agent may skip this URL.</p>
        <p class="note" role="note"> This is intended to allow user agents to expire resources not listed in the
      manifest from the cache. Generally, implementors are urged to use an approach that expires
      lesser-used resources first. </p>
       </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-18">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-26">application cache</a> in <var>cache group</var>, <a data-link-type="dfn" href="obsolete.html#queue-a-progress-post-load-task" id="ref-for-queue-a-progress-post-load-task-1">queue a progress post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-176">fire</a> a <a data-link-type="dfn" href="infrastructure.html#trusted" id="ref-for-trusted-30">trusted</a> event with the name <code>progress</code>, which does not
      bubble, which is cancelable, and which uses the <code>ProgressEvent</code> interface, at the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-19">cache host</a>. The <code>lengthComputable</code> attribute must be set to
      true, the <code>total</code> attribute must be set to the
      number of files in <var>file list</var>, and the <code>loaded</code> attribute must be set to the number of files in <var>file list</var> that have been either downloaded or skipped so far. The default
      action of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-10">shows caching progress</a>, the
      display of some sort of user interface indicating to the user that a file is being downloaded
      in preparation for updating the application. <a data-link-type="biblio" href="references.html#biblio-xhr">[XHR]</a>
       </li><li>Let <var>request</var> be a new <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request">request</a> whose <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> is URL, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-client">client</a> is null, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-destination">destination</a> is
      "<code>subresource</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-origin">origin</a> is <var>manifest URL</var>’s <a data-link-type="dfn" href="browsers.html#concept-cross-origin" id="ref-for-concept-cross-origin-101">origin</a>, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-referrer">referrer</a> is
      "<code>no-referrer</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#synchronous-flag">synchronous flag</a> is set, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-credentials-mode">credentials mode</a> is
      "<code>include</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-use-url-credentials-flag">use-URL-credentials flag</a> is set, and <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-redirect-mode">redirect mode</a> is
      "<code>manual</code>".
       </li><li><a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch">Fetch</a> <var>request</var>. If this is an <a data-link-type="dfn" href="obsolete.html#upgrade-attempt" id="ref-for-upgrade-attempt-3">upgrade attempt</a>, then use the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-5">newest</a> <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-27">application cache</a> in <var>cache
      group</var> as an HTTP cache, and honor HTTP caching semantics (such as expiration, ETags, and
      so forth) with respect to that cache. User agents may also have other caches in place that are
      also honored.
       </li><li>
        <p>If the previous step fails (e.g., the server returns a 4xx or 5xx response, or there is a
      DNS error, or the connection times out, or the user cancels the download), or if the server
      returned a redirect, or if the resource is labeled with the "no-store" cache directive, then
      run the first appropriate step from the following list: <a data-link-type="biblio" href="references.html#biblio-http">[HTTP]</a></p>
        <dl class="switch">
         <dt>If the URL being processed was flagged as an "explicit entry" or a "fallback entry"
         </dt><dd>
          <p>If these steps are being run in parallel for any other URLs in <var>file
        list</var>, then abort these steps for those other URLs. Run the <a data-link-type="dfn" href="obsolete.html#cache-failure-steps" id="ref-for-cache-failure-steps-3">cache failure
        steps</a>.</p>
          <p class="note" role="note"> Redirects are fatal because they are either indicative of a network problem
        (e.g., a captive portal); or would allow resources to be added to the cache under URLs that
        differ from any URL that the networking model will allow access to, leaving orphan entries;
        or would allow resources to be stored under URLs different than their true URLs. All of
        these situations are bad. </p>
         </dd><dt>If the error was a 404 or 410 HTTP response
         </dt><dt>If the resource was labeled with the "no-store" cache directive
         </dt><dd>
          <p>Skip this resource. It is dropped from the cache.</p>
         </dd><dt>Otherwise
         </dt><dd>
          <p>Copy the resource and its metadata from the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-6">newest</a> <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-28">application cache</a> in <var>cache group</var> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-5">completeness
        flag</a> is <i>complete</i>, and act as if that was the fetched resource, ignoring the
        resource obtained from the network.</p>
        </dd></dl>
        <p class="note" role="note"> These rules make errors for resources listed in the manifest fatal, while
      making it possible for other resources to be removed from caches when they are removed from
      the server, without errors, and making non-manifest resources survive server-side errors. </p>
        <p class="note" role="note"> Except for the "no-store" directive, HTTP caching rules that would cause a
      file to be expired or otherwise not cached are ignored for the purposes of the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-12">application cache download process</a>. </p>
       </li><li>
        <p>Otherwise, the fetching succeeded. Store the resource in the <var>new
      cache</var>.</p>
        <p>If the user agent is not able to store the resource (e.g., because of quota restrictions),
      the user agent may prompt the user or try to resolve the problem in some other manner (e.g.,
      automatically pruning content in other caches). If the problem cannot be resolved, the user
      agent must run the <a data-link-type="dfn" href="obsolete.html#cache-failure-steps" id="ref-for-cache-failure-steps-4">cache failure steps</a>.</p>
       </li><li>If the URL being processed was flagged as an "explicit entry" in <var>file
      list</var>, then categorize the entry as an <a data-link-type="dfn" href="obsolete.html#an-explicit-entry" id="ref-for-an-explicit-entry-5">explicit
      entry</a>.
       </li><li>If the URL being processed was flagged as a "fallback entry" in <var>file
      list</var>, then categorize the entry as a <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-8">fallback
      entry</a>.
       </li><li>If the URL being processed was flagged as an "master entry" in <var>file
      list</var>, then categorize the entry as a <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-6">master
      entry</a>.
       </li><li>As an optimization, if the resource is an HTML or XML file whose root element is an <code><a data-link-type="element" href="semantics.html#elementdef-html" id="ref-for-elementdef-html-96">html</a></code> element with a <code>manifest</code> attribute
      whose value doesn’t match the manifest URL of the application cache being processed, then the
      user agent should mark the entry as being <a data-link-type="dfn" href="obsolete.html#foreign" id="ref-for-foreign-1">foreign</a>. 
      </li></ol>
     </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-20">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-29">application cache</a> in <var>cache group</var>, <a data-link-type="dfn" href="obsolete.html#queue-a-progress-post-load-task" id="ref-for-queue-a-progress-post-load-task-2">queue a progress post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-177">fire</a> a <a data-link-type="dfn" href="infrastructure.html#trusted" id="ref-for-trusted-31">trusted</a> event with the name <code>progress</code>, which does not bubble,
    which is cancelable, and which uses the <code>ProgressEvent</code> interface, at the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-21">cache host</a>. The <code>lengthComputable</code> attribute must be set to
    true, the <code>total</code> and the <code>loaded</code> attributes must be set to the number of files in <var>file list</var>. The default action of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-11">shows caching progress</a>, the display of some sort of user interface indicating to the
    user that all the files have been downloaded. <a data-link-type="biblio" href="references.html#biblio-xhr">[XHR]</a>
     </li><li>Store the list of <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-6">fallback namespaces</a>,
    and the URLs of the <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-9">fallback entries</a> that they map
    to, in <var>new cache</var>.
     </li><li>Store the URLs that form the new <a data-link-type="dfn">online
    safelist</a> in <var>new cache</var>.
     </li><li>Store the value of the new <a data-link-type="dfn" href="obsolete.html#online-safelist-wildcard-flag" id="ref-for-online-safelist-wildcard-flag-2">online
    safelist wildcard flag</a> in <var>new cache</var>.
     </li><li>Store the value of the new <a data-link-type="dfn" href="obsolete.html#application-cache-mode" id="ref-for-application-cache-mode-2">cache mode flag</a> in <var>new cache</var>.
     </li><li>
      <p>For each entry in <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-6">list of pending master entries</a>, wait for the
    resource for this entry to have either completely downloaded or failed.</p>
      <p>If the download failed (e.g., the server returns a 4xx or 5xx response, or there is a DNS
    error, the connection times out, or the user cancels the download), or if the resource is
    labeled with the "no-store" cache directive, then run these substeps:</p>
      <ol>
       <li>Unassociate the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry from <var>new
      cache</var>.
       </li><li><a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-8">Queue a post-load task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-178">fire a simple event</a> that is
      cancelable named <code>error</code> at the <code>ApplicationCache</code> singleton of the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry, if there
      still is one. The default action of this event must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-12">shows caching
      progress</a>, the display of some sort of user interface indicating to the user that the
      user agent failed to save the application for offline use. 
       </li><li>
        <p>If this is a <a data-link-type="dfn" href="obsolete.html#cache-attempt" id="ref-for-cache-attempt-2">cache attempt</a> and this entry is
      the last entry in <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-7">list of pending master entries</a>, then run these
      further substeps:</p>
        <ol>
         <li>Discard <var>cache group</var> and its only <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-30">application cache</a>, <var>new cache</var>. 
         </li><li>If appropriate, remove any user interface indicating that an update for this cache is
        in progress.
         </li><li>Abort the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-13">application cache download process</a>.
        </li></ol>
       </li><li>Otherwise, remove this entry from <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-8">list of pending master entries</a>.
      </li></ol>
      <p>Otherwise, store the resource for this entry in <var>new cache</var>, if it isn’t
    already there, and categorize its entry as a <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-7">master
    entry</a>.</p>
     </li><li>Let <var>request</var> be a new <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request">request</a> whose <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> is <var>manifest URL</var>, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-client">client</a> is null, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-destination">destination</a> is "<code>subresource</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-referrer">referrer</a> is "<code>no-referrer</code>", <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#synchronous-flag">synchronous flag</a> is set, <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-credentials-mode">credentials
    mode</a> is "<code>include</code>", and whose <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-request-use-url-credentials-flag">use-URL-credentials
    flag</a> is set.
     </li><li>
      <p>Let <var>second manifest</var> be the result of <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-fetch">fetching</a> <var>request</var>. HTTP caching semantics should again
    be honored for this request.</p>
     </li><li>
      <p>If the previous step failed for any reason, or if the fetching attempt involved a redirect,
    or if <var>second manifest</var> and <var>manifest</var> are not byte-for-byte
    identical, then schedule a rerun of the entire algorithm with the same parameters after a short
    delay, and run the <a data-link-type="dfn" href="obsolete.html#cache-failure-steps" id="ref-for-cache-failure-steps-5">cache failure steps</a>.</p>
     </li><li>
      <p>Otherwise, store <var>manifest</var> in <var>new cache</var>, if it’s not
    there already, and categorize its entry as <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-10">the
    manifest</a>.</p>
     </li><li>Set the <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-6">completeness flag</a> of <var>new cache</var> to <i>complete</i>.
     </li><li>Let <var>task list</var> be an empty list of <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-136">tasks</a>. 
     </li><li>
      <p>If this is a <a data-link-type="dfn" href="obsolete.html#cache-attempt" id="ref-for-cache-attempt-3">cache attempt</a>, then for each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-22">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-31">application cache</a> in <var>cache
    group</var>, create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-137">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-179">fire a simple event</a> that is cancelable named <code>cached</code> at the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-23">cache host</a>, and append it to <var>task list</var>. The default action of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-13">shows caching progress</a>, the display of some sort of user interface indicating to
    the user that the application has been cached and that they can now use it offline.</p>
      <p>Otherwise, it is an <a data-link-type="dfn" href="obsolete.html#upgrade-attempt" id="ref-for-upgrade-attempt-4">upgrade attempt</a>. For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-24">cache host</a> associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-32">application cache</a> in <var>cache
    group</var>, create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-138">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-180">fire a simple event</a> that is cancelable named <code>updateready</code> at the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-25">cache host</a>, and append it to <var>task list</var>. The default action of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-14">shows caching progress</a>, the display of some sort of user interface indicating to
    the user that a new version is available and that they can activate it by reloading the
    page.</p>
     </li><li>If appropriate, remove any user interface indicating that an update for this cache is in
    progress.
     </li><li>Set the <a data-link-type="dfn" href="obsolete.html#update-status" id="ref-for-update-status-1">update status</a> of <var>cache
    group</var> to <i>idle</i>.
     </li><li>For each <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-139">task</a> in <var>task list</var>, <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-9">queue that task as a post-load task</a>.
    </li></ol>
    <p>The <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="cache-failure-steps">cache failure steps</dfn> are as follows:</p>
    <ol>
     <li>Let <var>task list</var> be an empty list of <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-140">tasks</a>. 
     </li><li>
      <p>For each entry in <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-9">list of pending master entries</a>, run the
    following further substeps. These steps may be run in parallel for two or more entries at a
    time.</p>
      <ol>
       <li>Wait for the resource for this entry to have either completely downloaded or failed. 
       </li><li>Unassociate the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry from its <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-33">application
      cache</a>, if it has one.
       </li><li>Create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-141">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-181">fire a simple event</a> that
      is cancelable named <code>error</code> at the <code>ApplicationCache</code> singleton of the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> for this entry, if there
      still is one, and append it to <var>task list</var>. The default action of these
      events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-15">shows caching progress</a>, the display of some sort
      of user interface indicating to the user that the user agent failed to save the application for
      offline use. 
      </li></ol>
     </li><li>For each <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-26">cache host</a> still associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-34">application cache</a> in <var>cache group</var>, create a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-142">task</a> to <a data-link-type="dfn" href="infrastructure.html#fire" id="ref-for-fire-182">fire
    a simple event</a> that is cancelable named <code>error</code> at
    the <code>ApplicationCache</code> singleton of the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-27">cache host</a>, and append it to <var>task list</var>. The default action of these events must be, if the user agent <a data-link-type="dfn" href="obsolete.html#shows-caching-progress" id="ref-for-shows-caching-progress-16">shows caching progress</a>, the display of some sort of user interface indicating to the
    user that the user agent failed to save the application for offline use.
     </li><li>Empty <var>cache group</var>’s <a data-link-type="dfn" href="obsolete.html#list-of-pending-master-entries" id="ref-for-list-of-pending-master-entries-10">list of pending master entries</a>.
     </li><li>If <var>cache group</var> has an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-35">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-7">completeness flag</a> is <i>incomplete</i>, then discard
    that <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-36">application cache</a>. 
     </li><li>If appropriate, remove any user interface indicating that an update for this cache is in
    progress.
     </li><li>Let the <a data-link-type="dfn" href="https://fetch.spec.whatwg.org/#concept-status">status</a> of <var>cache
    group</var> be <i>idle</i>.
     </li><li>If this was a <a data-link-type="dfn" href="obsolete.html#cache-attempt" id="ref-for-cache-attempt-4">cache attempt</a>, discard <var>cache group</var> altogether. 
     </li><li>For each <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-143">task</a> in <var>task list</var>, <a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-10">queue that task as a post-load task</a>.
     </li><li>Abort the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-14">application cache download process</a>.
    </li></ol>
    <p>Attempts to fetch resources as part of the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-15">application cache download process</a> may
  be done with cache-defeating semantics, to avoid problems with stale or inconsistent intermediary
  caches.</p>
    <hr>
    <p>User agents may invoke the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-16">application cache download process</a>, in the background,
  for any <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-16">application cache group</a>, at any time (with no <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-28">cache host</a>). This
  allows user agents to keep caches primed and to update caches even before the user visits a
  site.</p>
    <hr>
    <p>Each <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> has a list of <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="pending application cache download process tasks" data-noexport="" id="pending-application-cache-download-process-tasks">pending application cache download process
  tasks</dfn> that is used to delay events fired by the algorithm above until the document’s <code>load</code> event has fired. When the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> is created, the
  list must be empty.</p>
    <p>When the steps above say to <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="queue that task as a post-load task|queue a post-load task" data-noexport="" id="queue-that-task-as-a-post-load-task">queue a post-load task</dfn> <var>task</var>, where <var>task</var> is a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-144">task</a> that dispatches an event on a
  target <code>ApplicationCache</code> object <var>target</var>, the user agent must run
  the appropriate steps from the following list:</p>
    <dl>
     <dt>If <var>target</var>’s <a data-link-type="dfn" href="https://www.w3.org/TR/dom/#concept-node-document">node document</a> is <a data-link-type="dfn" href="syntax.html#ready-for-post-load-tasks" id="ref-for-ready-for-post-load-tasks-10">ready for post-load tasks</a>
     </dt><dd><a data-link-type="dfn" href="webappapis.html#queuing" id="ref-for-queuing-147">Queue</a> the task <var>task</var>.
     </dd><dt>Otherwise
     </dt><dd>Add <var>task</var> to <var>target</var>’s <a data-link-type="dfn" href="https://www.w3.org/TR/dom/#concept-node-document">node document</a>’s list
    of <a data-link-type="dfn" href="obsolete.html#pending-application-cache-download-process-tasks" id="ref-for-pending-application-cache-download-process-tasks-4">pending application cache download process tasks</a>.
    </dd></dl>
    <p>When the steps above say to <dfn class="dfn-paneled" data-dfn-type="dfn" data-noexport="" id="queue-a-progress-post-load-task">queue a progress post-load task</dfn> <var>task</var>, where <var>task</var> is a <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-145">task</a> that dispatches an event on a
  target <code>ApplicationCache</code> object <var>target</var>, the user agent must run
  the following steps:</p>
    <ol>
     <li>If there is a <var>task</var> in <var>target</var>’s <a data-link-type="dfn" href="https://www.w3.org/TR/dom/#concept-node-document">node document</a>’s list
    of <a data-link-type="dfn" href="obsolete.html#pending-application-cache-download-process-tasks" id="ref-for-pending-application-cache-download-process-tasks-5">pending application cache download process tasks</a> that is labeled as a <i>progress task</i>, then remove that task from the list.
     </li><li>Label <var>task</var> as a <i>progress task</i>.
     </li><li><a data-link-type="dfn" href="obsolete.html#queue-that-task-as-a-post-load-task" id="ref-for-queue-that-task-as-a-post-load-task-11">Queue a post-load task</a> <var>task</var>.
    </li></ol>
    <p>The <a data-link-type="dfn" href="webappapis.html#task-source" id="ref-for-task-source-46">task source</a> for these <a data-link-type="dfn" href="webappapis.html#tasks" id="ref-for-tasks-146">tasks</a> is the <a data-link-type="dfn" href="webappapis.html#networking-task-source" id="ref-for-networking-task-source-30">networking task source</a>.</p>
    <h5 class="heading settled" data-level="11.3.4.3" id="the-application-cache-selection-algorithm"><span class="secno">11.3.4.3. </span><span class="content">The application cache selection algorithm</span><a class="self-link" href="obsolete.html#the-application-cache-selection-algorithm"></a></h5>
    <p>When the <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="has an effect|application cache selection algorithm|application cache selection|cache selection" data-noexport="" id="has-an-effect">application cache selection algorithm</dfn> algorithm is invoked with a <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> <var>document</var> and optionally a
  manifest <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> <var>manifest URL</var>, the user agent must run the first
  applicable set of steps from the following list:</p>
    <dl class="switch">
     <dt>If there is a <var>manifest URL</var>, and <var>document</var> was loaded
    from an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-37">application cache</a>, and the URL of the <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-11">manifest</a> of that cache’s <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-17">application cache
    group</a> is <em>not</em> the same as <var>manifest URL</var>
     </dt><dd>
      <p>Mark the entry for the resource from which <var>document</var> was taken in the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-38">application cache</a> from which it was loaded as <a data-link-type="dfn" href="obsolete.html#foreign" id="ref-for-foreign-2">foreign</a>.</p>
      <p>Restart the current navigation from the top of the <a data-link-type="dfn" href="browsers.html#navigated" id="ref-for-navigated-105">navigation
    algorithm</a>, undoing any changes that were made as part of the initial load (changes can be
    avoided by ensuring that the step to <a data-link-type="dfn" href="browsers.html#updating-the-session-history-with-the-new-page" id="ref-for-updating-the-session-history-with-the-new-page-10">update the session history with the new page</a> is only ever completed <em>after</em> this <a data-link-type="dfn" href="obsolete.html#has-an-effect" id="ref-for-has-an-effect-6">application cache
    selection algorithm</a> is run, though this is not required).</p>
     </dd><dt>If <var>document</var> was loaded from an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-39">application cache</a>, and that <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-40">application cache</a> still exists (it is not now <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-3">obsolete</a>)
     </dt><dd>
      <p>Associate <var>document</var> with the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-41">application cache</a> from which it
    was loaded. Invoke, in the background, the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-17">application cache download process</a> for
    that <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-42">application cache</a>’s <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-18">application cache group</a>, with <var>document</var> as the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-29">cache host</a>.</p>
     </dd><dt>If <var>document</var> was loaded using <code>GET</code>, and, there is a <var>manifest URL</var>, and <var>manifest URL</var> has the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-35">same origin</a> as <var>document</var>
     </dt><dd>
      <p>Invoke, in the background, the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-18">application cache download process</a> for <var>manifest URL</var>, with <var>document</var> as the <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-30">cache host</a> and with the resource from which <var>document</var> was parsed as the <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-8">master</a> resource.</p>
      <p>If there are <a data-link-type="dfn" href="obsolete.html#relevant-application-cache" id="ref-for-relevant-application-cache-3">relevant application caches</a> that
    are identified by a URL with the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-36">same origin</a> as the URL of <var>document</var>, and that have this URL as one of their entries, excluding entries
    marked as <a data-link-type="dfn" href="obsolete.html#foreign" id="ref-for-foreign-3">foreign</a>, then the user agent should use
    the <a data-link-type="dfn" href="obsolete.html#most-appropriate-application-cache" id="ref-for-most-appropriate-application-cache-1">most appropriate application cache</a> of those
    that match as an HTTP cache for any subresource loads. User agents may also have other caches in
    place that are also honored.</p>
     </dd><dt>Otherwise
     </dt><dd>
      <p>The <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> is not associated with any <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-43">application cache</a>.</p>
      <p>If there was a <var>manifest URL</var>, the user agent may report to the user that
    it was ignored, to aid in application development.</p>
    </dd></dl>
    <h5 class="heading settled" data-level="11.3.4.4" id="changes-to-the-networking-model"><span class="secno">11.3.4.4. </span><span class="content">Changes to the networking model</span><a class="self-link" href="obsolete.html#changes-to-the-networking-model"></a></h5>
    <p>When a <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-31">cache host</a> is associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-44">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-8">completeness flag</a> is <i>complete</i>, any and all
  loads for resources related to that <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-32">cache host</a> other than those for <a data-link-type="dfn" href="browsers.html#child-browsing-context" id="ref-for-child-browsing-context-30">child browsing contexts</a> must go through the following steps
  instead of immediately invoking the mechanisms appropriate to that resource’s scheme:</p>
    <ol>
     <li>If the resource is not to be fetched using the GET method, or if applying the <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-parser">URL
    parser</a> algorithm to both its <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a> and the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-45">application cache</a>’s <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-12">manifest</a>’s URL results in two <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url">URL records</a> with different <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-scheme">scheme</a> components,
    then fetch the resource normally and abort these steps.
     </li><li>If the resource’s URL is a <a data-link-type="dfn" href="obsolete.html#master" id="ref-for-master-9">master entry</a>, <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-13">the manifest</a>, <a data-link-type="dfn" href="obsolete.html#an-explicit-entry" id="ref-for-an-explicit-entry-6">an explicit entry</a>, or <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-10">a fallback entry</a> in the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-46">application cache</a>,
    then get the resource from the cache (instead of fetching it), and abort these steps.
     </li><li>If there is an entry in the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-47">application cache</a>’s <a data-link-type="dfn">online safelist</a> that has the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-37">same
    origin</a> as the resource’s URL and that is a <a data-link-type="dfn" href="infrastructure.html#prefix-match" id="ref-for-prefix-match-3">prefix match</a> for the resource’s
    URL, then fetch the resource normally and abort these steps.
     </li><li>
      <p>If the resource’s URL has the <a data-link-type="dfn" href="browsers.html#same-origin" id="ref-for-same-origin-38">same origin</a> as the manifest’s URL, and there is a <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-7">fallback namespace</a> <var>f</var> in
    the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-48">application cache</a> that is a <a data-link-type="dfn" href="infrastructure.html#prefix-match" id="ref-for-prefix-match-4">prefix match</a> for the resource’s URL,
    then:</p>
      <p>Fetch the resource normally. If this results in a redirect to a resource with another <a data-link-type="dfn" href="browsers.html#concept-cross-origin" id="ref-for-concept-cross-origin-102">origin</a> (indicative of a captive portal), or a 4xx or 5xx status code, or if
    there were network errors (but not if the user canceled the download), then instead get, from
    the cache, the resource of the <a data-link-type="dfn" href="obsolete.html#a-fallback-entry" id="ref-for-a-fallback-entry-11">fallback entry</a> corresponding to the <a data-link-type="dfn" href="obsolete.html#fallback-namespaces" id="ref-for-fallback-namespaces-8">fallback namespace</a> <var>f</var>. Abort these steps.</p>
     </li><li>If the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-49">application cache</a>’s <a data-link-type="dfn" href="obsolete.html#online-safelist-wildcard-flag" id="ref-for-online-safelist-wildcard-flag-3">online safelist wildcard flag</a> is <i>open</i>, then fetch the resource normally and abort these steps.
     </li><li>Fail the resource load as if there had been a generic network error.
    </li></ol>
    <p class="note" role="note"> The above algorithm ensures that so long as the <a data-link-type="dfn" href="obsolete.html#online-safelist-wildcard-flag" id="ref-for-online-safelist-wildcard-flag-4">online safelist wildcard flag</a> is <i>blocking</i>, resources that are not present in the <a data-link-type="dfn" href="obsolete.html#the-manifest" id="ref-for-the-manifest-14">manifest</a> will always fail to load (at least, after the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-50">application cache</a> has been primed the first time), making the testing of offline
  applications simpler. </p>
    <h5 class="heading settled" data-level="11.3.4.5" id="expiring-application-caches"><span class="secno">11.3.4.5. </span><span class="content">Expiring application caches</span><a class="self-link" href="obsolete.html#expiring-application-caches"></a></h5>
    <p>As a general rule, user agents should not expire application caches, except on request from the
  user, or after having been left unused for an extended period of time.</p>
    <p>Application caches and cookies have similar implications with respect to privacy (e.g., if the
  site can identify the user when providing the cache, it can store data in the cache that can be
  used for cookie resurrection). Implementors are therefore encouraged to expose application caches
  in a manner related to HTTP cookies, allowing caches to be expunged together with cookies and
  other origin-specific data.</p>
    <h5 class="heading settled" data-level="11.3.4.6" id="disk-space"><span class="secno">11.3.4.6. </span><span class="content">Disk space</span><a class="self-link" href="obsolete.html#disk-space"></a></h5>
    <p>User agents should consider applying constraints on disk usage of <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-51">application caches</a>, and care should be taken to ensure that the restrictions cannot
  be easily worked around using subdomains.</p>
    <p>User agents should allow users to see how much space each domain is using, and may offer the
  user the ability to delete specific <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-52">application caches</a>.</p>
    <h5 class="heading settled" data-level="11.3.4.7" id="security-concerns-with-offline-applications-caches"><span class="secno">11.3.4.7. </span><span class="content">Security concerns with offline applications caches</span><a class="self-link" href="obsolete.html#security-concerns-with-offline-applications-caches"></a></h5>
    <p><em>This section is non-normative.</em></p>
    <p>The main risk introduced by offline application caches is that an injection attack can be
  elevated into persistent site-wide page replacement. This attack involves using an injection
  vulnerability to upload two files to the victim site. The first file is an application cache
  manifest consisting of just a fallback entry pointing to the second file, which is an HTML page
  whose manifest is declared as that first file. Once the user has been directed to that second
  file, all subsequent accesses to any file covered by the given fallback namespace while either the
  user or the site is offline will instead show that second file. Targeted denial-of-service
  attacks or cookie bombing attacks (where the client is made to send so many cookies that the
  server refuses to process the request) can be used to ensure that the site appears offline.</p>
    <p>To mitigate this, manifests can only specify fallbacks that are in the same path as the
  manifest itself. This means that a content injection upload vulnerability in a particular
  directory on a server can only be escalated to a take-over of that directory and its
  subdirectories. If there is no way to inject a file into the root directory, the entire site
  cannot be taken over.</p>
    <p>If a site has been attacked in this way, simply removing the offending manifest might eventually
  clear the problem, since the next time the manifest is updated, a 404 error will be seen, and the
  user agent will clear the cache. "Eventually" is the key word here, however; while the attack on
  the user or server is ongoing, such that connections from an affected user to the affected site
  are blocked, the user agent will simply assume that the user is offline and will continue to use
  the hostile manifest. Unfortunately, if a cookie bombing attack has also been used, merely
  removing the manifest is insufficient; in addition, the server has to be configured to return a
  404 or 410 response instead of the 413 "Request Entity Too Large" response.</p>
    <p>TLS does not inherently protect a site from this attack, since the attack relies on content
  being served from the server itself. Not using application caches also does not prevent this
  attack, since the attack relies on an attacker-provided manifest.</p>
    <h5 class="heading settled" data-level="11.3.4.8" id="application-cache-api"><span class="secno">11.3.4.8. </span><span class="content">Application cache API</span><a class="self-link" href="obsolete.html#application-cache-api"></a></h5>
<pre class="idl highlight def" data-highlight="webidl">[<a class="nv idl-code" data-link-type="extended-attribute">Exposed</a>=(<span class="n">Window</span>, <span class="n">SharedWorker</span>)]
<span class="kt">interface</span> <dfn class="nv dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="interface" data-export="" id="applicationcache-applicationcache">ApplicationCache</dfn> : <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/dom/#eventtarget">EventTarget</a> {
  // update status
  <span class="kt">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="const" href="obsolete.html#dom-applicationcache-uncached" id="ref-for-dom-applicationcache-uncached-1">UNCACHED</a> = 0;
  <span class="kt">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="const" href="obsolete.html#dom-applicationcache-idle" id="ref-for-dom-applicationcache-idle-1">IDLE</a> = 1;
  <span class="kt">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="const" href="obsolete.html#dom-applicationcache-checking" id="ref-for-dom-applicationcache-checking-1">CHECKING</a> = 2;
  <span class="kt">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="const" href="obsolete.html#dom-applicationcache-downloading" id="ref-for-dom-applicationcache-downloading-1">DOWNLOADING</a> = 3;
  <span class="kt">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="const" href="obsolete.html#dom-applicationcache-updateready" id="ref-for-dom-applicationcache-updateready-1">UPDATEREADY</a> = 4;
  <span class="kt">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="const" href="obsolete.html#dom-applicationcache-obsolete" id="ref-for-dom-applicationcache-obsolete-1">OBSOLETE</a> = 5;
  <span class="kt">readonly</span> <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">short</span> <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="unsigned short" href="obsolete.html#dom-applicationcache-status" id="ref-for-dom-applicationcache-status-1">status</a>;

  // updates
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-applicationcache-update" id="ref-for-dom-applicationcache-update-1">update</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-applicationcache-abort" id="ref-for-dom-applicationcache-abort-1">abort</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-applicationcache-swapcache" id="ref-for-dom-applicationcache-swapcache-1">swapCache</a>();

  // events
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-95">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-onchecking" id="ref-for-dom-applicationcache-onchecking-1">onchecking</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-96">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-onerror" id="ref-for-dom-applicationcache-onerror-1">onerror</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-97">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-onnoupdate" id="ref-for-dom-applicationcache-onnoupdate-1">onnoupdate</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-98">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-ondownloading" id="ref-for-dom-applicationcache-ondownloading-1">ondownloading</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-99">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-onprogress" id="ref-for-dom-applicationcache-onprogress-1">onprogress</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-100">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-onupdateready" id="ref-for-dom-applicationcache-onupdateready-1">onupdateready</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-101">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-oncached" id="ref-for-dom-applicationcache-oncached-1">oncached</a>;
  <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="webappapis.html#typedefdef-eventhandlernonnull-eventhandler" id="ref-for-typedefdef-eventhandlernonnull-eventhandler-102">EventHandler</a> <a class="nv idl-code" data-link-type="attribute" data-type="EventHandler" href="obsolete.html#dom-applicationcache-onobsolete" id="ref-for-dom-applicationcache-onobsolete-1">onobsolete</a>;
};
</pre>
    <dl class="domintro">
     <dt><var>cache</var> = <var>window</var> . <code>applicationCache</code>
     </dt><dd>
      <p>(In a window.) Returns the <code>ApplicationCache</code> object that applies to the <a data-link-type="dfn" href="browsers.html#active-document" id="ref-for-active-document-117">active document</a> of that <code class="idl"><a data-link-type="idl" href="browsers.html#window-window" id="ref-for-window-window-69">Window</a></code>.</p>
     </dd><dt><var>cache</var> = <var>self</var> . <code>applicationCache</code>
     </dt><dd>
      <p>(In a shared worker.) Returns the <code>ApplicationCache</code> object that applies to the
    current shared worker.</p>
     </dd><dt><var>cache</var> . <code>status</code>
     </dt><dd>
      <p>Returns the current status of the application cache, as given by the constants defined
    below.</p>
     </dd><dt><var>cache</var> . <code>update</code>()
     </dt><dd>
      <p>Invokes the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-19">application cache download process</a>.</p>
      <p>Throws an <code>InvalidStateError</code> exception if there is no application cache to
    update.</p>
     </dd><dt><var>cache</var> . <code>abort</code>()
     </dt><dd>
      <p>Cancels the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-20">application cache download process</a>.</p>
     </dd><dt><var>cache</var> . <code>swapCache</code>()
     </dt><dd>
      <p>Switches to the most recent application cache, if there is a newer one. If there isn’t,
    throws an <code>InvalidStateError</code> exception.</p>
    </dd></dl>
    <p>There is a one-to-one mapping from <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-33">cache hosts</a> to <code>ApplicationCache</code> objects. The <dfn class="idl-code" data-dfn-for="Window" data-dfn-type="attribute" data-export="" id="dom-window-applicationcache"><code>applicationCache</code><a class="self-link" href="obsolete.html#dom-window-applicationcache"></a></dfn> attribute on <code>Window</code> objects must return the <code>ApplicationCache</code> object associated with the <code>Window</code> object’s <a data-link-type="dfn" href="browsers.html#active-document" id="ref-for-active-document-118">active document</a>. The <dfn class="idl-code" data-dfn-for="SharedWorkerGlobalScope" data-dfn-type="attribute" data-export="" id="dom-sharedworkerglobalscope-applicationcache"><code>applicationCache</code><a class="self-link" href="obsolete.html#dom-sharedworkerglobalscope-applicationcache"></a></dfn> attribute
  on <code>SharedWorkerGlobalScope</code> objects must return the <code>ApplicationCache</code> object associated with the worker.</p>
    <p class="note" role="note"> A <code>Window</code> or <code>SharedWorkerGlobalScope</code> object has an
  associated <code>ApplicationCache</code> object even if that <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-34">cache host</a> has no actual <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-53">application cache</a>. </p>
    <hr>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-status"><code>status</code></dfn> attribute, on getting, must
  return the current state of the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-54">application cache</a> that the <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-35">cache host</a> is associated with, if any. This
  must be the appropriate value from the following list:</p>
    <dl>
     <dt><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="const" data-export="" id="dom-applicationcache-uncached"><code>UNCACHED</code></dfn> (numeric value 0)
     </dt><dd>The <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-36">cache host</a> is not associated with
    an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-55">application cache</a> at this time.
     </dd><dt><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="const" data-export="" id="dom-applicationcache-idle"><code>IDLE</code></dfn> (numeric value 1)
     </dt><dd>The <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-37">cache host</a> is associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-56">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-19">application cache group</a>’s <a data-link-type="dfn" href="obsolete.html#update-status" id="ref-for-update-status-2">update status</a> is <i>idle</i>, and that <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-57">application
    cache</a> is the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-7">newest</a> cache in its <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-20">application cache group</a>, and the <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-21">application cache group</a> is not marked
    as <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-4">obsolete</a>.
     </dd><dt><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="const" data-export="" id="dom-applicationcache-checking"><code>CHECKING</code></dfn> (numeric value 2)
     </dt><dd>The <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-38">cache host</a> is associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-58">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-22">application cache group</a>’s <a data-link-type="dfn" href="obsolete.html#update-status" id="ref-for-update-status-3">update status</a> is <i>checking</i>.
     </dd><dt><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="const" data-export="" id="dom-applicationcache-downloading"><code>DOWNLOADING</code></dfn> (numeric value 3)
     </dt><dd>The <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-39">cache host</a> is associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-59">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-23">application cache group</a>’s <a data-link-type="dfn" href="obsolete.html#update-status" id="ref-for-update-status-4">update status</a> is <i>downloading</i>.
     </dd><dt><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="const" data-export="" id="dom-applicationcache-updateready"><code>UPDATEREADY</code></dfn> (numeric value 4)
     </dt><dd>The <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-40">cache host</a> is associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-60">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-24">application cache group</a>’s <a data-link-type="dfn" href="obsolete.html#update-status" id="ref-for-update-status-5">update status</a> is <i>idle</i>, and whose <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-25">application
    cache group</a> is not marked as <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-5">obsolete</a>, but
    that <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-61">application cache</a> is <em>not</em> the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-8">newest</a> cache in its group.
     </dd><dt><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="const" data-export="" id="dom-applicationcache-obsolete"><code>OBSOLETE</code></dfn> (numeric value 5)
     </dt><dd>The <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-41">cache host</a> is associated with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-62">application cache</a> whose <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-26">application cache group</a> is marked as <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-6">obsolete</a>.
    </dd></dl>
    <hr>
    <p>If the <dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="method" data-export="" id="dom-applicationcache-update"><code>update()</code></dfn> method is invoked, the user
  agent must invoke the <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-21">application cache download process</a>, in the background, for the <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-27">application cache group</a> of the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-63">application cache</a> with which the <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-42">cache host</a> is associated, but without giving
  that <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-43">cache host</a> to the algorithm. If there is no such <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-64">application cache</a>,
  or if its <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-28">application cache group</a> is marked as <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-7">obsolete</a>, then the method must throw an <code>InvalidStateError</code> exception instead.</p>
    <p>If the <dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="method" data-export="" id="dom-applicationcache-abort"><code>abort()</code></dfn> method is invoked, the user
  agent must <dfn class="dfn-paneled" data-dfn-type="dfn" data-lt="sends a signal|send a signal" data-noexport="" id="sends-a-signal">send a signal</dfn> to the current <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-22">application cache download process</a> for the <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-29">application cache group</a> of the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-65">application cache</a> with which the <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-44">cache host</a> is associated, if any. If there is
  no such <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-66">application cache</a>, or it does not have a current <a data-link-type="dfn" href="obsolete.html#application-cache-download-process" id="ref-for-application-cache-download-process-23">application cache
  download process</a>, then do nothing.</p>
    <p>If the <dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="method" data-export="" id="dom-applicationcache-swapcache"><code>swapCache()</code></dfn> method is invoked,
  the user agent must run the following steps:</p>
    <ol>
     <li>Check that <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-45">cache host</a> is associated
    with an <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-67">application cache</a>. If it is not, then throw an <code>InvalidStateError</code> exception and abort these steps.
     </li><li>Let <var>cache</var> be the <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-68">application cache</a> with which the <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-46">cache host</a> is associated. (By definition,
    this is the same as the one that was found in the previous step.)
     </li><li>If <var>cache</var>’s <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-30">application cache group</a> is marked as <a data-link-type="dfn" href="obsolete.html#applicationcache-obsolete" id="ref-for-applicationcache-obsolete-8">obsolete</a>, then unassociate the <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-47">cache host</a> from <var>cache</var> and
    abort these steps. (Resources will now load from the network instead of the cache.)
     </li><li>Check that there is an application cache in the same <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-31">application cache group</a> as <var>cache</var> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-9">completeness
    flag</a> is <i>complete</i> and that is <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-9">newer</a> than <var>cache</var>. If there is not, then throw an <code>InvalidStateError</code> exception and abort these steps.
     </li><li>Let <var>new cache</var> be the <a data-link-type="dfn" href="obsolete.html#newest" id="ref-for-newest-10">newest</a> <a data-link-type="dfn" href="obsolete.html#application-cache-manifest" id="ref-for-application-cache-manifest-69">application cache</a> in the same <a data-link-type="dfn" href="obsolete.html#application-cache-group" id="ref-for-application-cache-group-32">application cache group</a> as <var>cache</var> whose <a data-link-type="dfn" href="obsolete.html#completeness-flag" id="ref-for-completeness-flag-10">completeness flag</a> is <i>complete</i>.
     </li><li>Unassociate the <code>ApplicationCache</code> object’s <a data-link-type="dfn" href="obsolete.html#cache-host" id="ref-for-cache-host-48">cache host</a> from <var>cache</var> and instead associate it with <var>new cache</var>.
    </li></ol>
    <p>The following are the <a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-52">event handlers</a> (and their corresponding <a data-link-type="dfn" href="webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type-21">event handler event types</a>) <span class="impl">that must be</span> supported, as <a data-link-type="dfn" href="webappapis.html#event-handler-idl-event-handler-idl-attribute" id="ref-for-event-handler-idl-event-handler-idl-attribute-26">event handler IDL attributes</a>, by all objects implementing the <code>ApplicationCache</code> interface:</p>
    <table>
     <thead>
      <tr>
       <th><a data-link-type="dfn" href="webappapis.html#event-handler" id="ref-for-event-handler-53">Event handler</a> 
       </th><th><a data-link-type="dfn" href="webappapis.html#event-handler-event-type" id="ref-for-event-handler-event-type-22">Event handler event type</a> 
     </th></tr></thead><tbody>
      <tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-onchecking"><code>onchecking</code></dfn> 
       </td><td> <code>checking</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-onerror"><code>onerror</code></dfn> 
       </td><td> <code>error</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-onnoupdate"><code>onnoupdate</code></dfn> 
       </td><td> <code>noupdate</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-ondownloading"><code>ondownloading</code></dfn> 
       </td><td> <code>downloading</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-onprogress"><code>onprogress</code></dfn> 
       </td><td> <code>progress</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-onupdateready"><code>onupdateready</code></dfn> 
       </td><td> <code>updateready</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-oncached"><code>oncached</code></dfn> 
       </td><td> <code>cached</code> 
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="ApplicationCache" data-dfn-type="attribute" data-export="" id="dom-applicationcache-onobsolete"><code>onobsolete</code></dfn> 
       </td><td> <code>obsolete</code> 
    </td></tr></tbody></table>
    <h4 class="heading settled" data-level="11.3.5" id="other-elements-attributes-and-apis"><span class="secno">11.3.5. </span><span class="content">Other elements, attributes and APIs</span><a class="self-link" href="obsolete.html#other-elements-attributes-and-apis"></a></h4>
    <p>User agents must treat <code><a data-link-type="element" href="obsolete.html#elementdef-acronym" id="ref-for-elementdef-acronym-1">acronym</a></code> elements in a manner equivalent to <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-abbr" id="ref-for-elementdef-abbr-15">abbr</a></code> elements in terms
  of semantics and for purposes of rendering.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="textlevel-semantics.html#htmlanchorelement-htmlanchorelement" id="ref-for-htmlanchorelement-htmlanchorelement-2">HTMLAnchorElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlanchorelement-coords" id="ref-for-dom-htmlanchorelement-coords-1">coords</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlanchorelement-charset" id="ref-for-dom-htmlanchorelement-charset-1">charset</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlanchorelement-name" id="ref-for-dom-htmlanchorelement-name-1">name</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlanchorelement-shape" id="ref-for-dom-htmlanchorelement-shape-1">shape</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAnchorElement" data-dfn-type="attribute" data-export="" id="dom-htmlanchorelement-coords"><code>coords</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAnchorElement" data-dfn-type="attribute" data-export="" id="dom-htmlanchorelement-charset"><code>charset</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAnchorElement" data-dfn-type="attribute" data-export="" id="dom-htmlanchorelement-name"><code>name</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAnchorElement" data-dfn-type="attribute" data-export="" id="dom-htmlanchorelement-shape"><code>shape</code></dfn> IDL attributes of the <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-75">th</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-134">reflect</a> the respective content attributes of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-embedded-content.html#htmlareaelement-htmlareaelement" id="ref-for-htmlareaelement-htmlareaelement-2">HTMLAreaElement</a> {
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlareaelement-nohref" id="ref-for-dom-htmlareaelement-nohref-1">noHref</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLAreaElement" data-dfn-type="attribute" data-export="" id="dom-htmlareaelement-nohref"><code>noHref</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-area" id="ref-for-elementdef-area-101">area</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-135">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-area-nohref" id="ref-for-element-attrdef-area-nohref-1">nohref</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="sections.html#htmlbodyelement-htmlbodyelement" id="ref-for-htmlbodyelement-htmlbodyelement-2">HTMLBodyElement</a> {
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbodyelement-text" id="ref-for-dom-htmlbodyelement-text-1">text</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbodyelement-link" id="ref-for-dom-htmlbodyelement-link-1">link</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbodyelement-vlink" id="ref-for-dom-htmlbodyelement-vlink-1">vLink</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbodyelement-alink" id="ref-for-dom-htmlbodyelement-alink-1">aLink</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbodyelement-bgcolor" id="ref-for-dom-htmlbodyelement-bgcolor-1">bgColor</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbodyelement-background" id="ref-for-dom-htmlbodyelement-background-1">background</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBodyElement" data-dfn-type="attribute" data-export="" id="dom-htmlbodyelement-text"><code>text</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-145">body</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-136">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-text" id="ref-for-element-attrdef-body-text-2">text</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBodyElement" data-dfn-type="attribute" data-export="" id="dom-htmlbodyelement-link"><code>link</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-146">body</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-137">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-link" id="ref-for-element-attrdef-body-link-2">link</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBodyElement" data-dfn-type="attribute" data-export="" id="dom-htmlbodyelement-alink"><code>aLink</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-147">body</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-138">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-alink" id="ref-for-element-attrdef-body-alink-2">alink</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBodyElement" data-dfn-type="attribute" data-export="" id="dom-htmlbodyelement-vlink"><code>vLink</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-148">body</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-139">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-vlink" id="ref-for-element-attrdef-body-vlink-2">vlink</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBodyElement" data-dfn-type="attribute" data-export="" id="dom-htmlbodyelement-bgcolor"><code>bgColor</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-149">body</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-140">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-bgcolor" id="ref-for-element-attrdef-body-bgcolor-2">bgcolor</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBodyElement" data-dfn-type="attribute" data-export="" id="dom-htmlbodyelement-background"><code>background</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-150">body</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-141">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-background" id="ref-for-element-attrdef-body-background-3">background</a></code> content attribute. (The <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-background" id="ref-for-element-attrdef-body-background-4">background</a></code> content is <em>not</em> defined to contain a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>, despite
  rules regarding its handling in <a href="rendering.html#rendering">§10 Rendering</a> above.)</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="textlevel-semantics.html#htmlbrelement-htmlbrelement" id="ref-for-htmlbrelement-htmlbrelement-1">HTMLBRElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlbrelement-clear" id="ref-for-dom-htmlbrelement-clear-1">clear</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLBRElement" data-dfn-type="attribute" data-export="" id="dom-htmlbrelement-clear"><code>clear</code></dfn> IDL attribute of the <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-br" id="ref-for-elementdef-br-19">br</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-142">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltablecaptionelement-htmltablecaptionelement" id="ref-for-htmltablecaptionelement-htmltablecaptionelement-3">HTMLTableCaptionElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecaptionelement-align" id="ref-for-dom-htmltablecaptionelement-align-1">align</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCaptionElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecaptionelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-caption" id="ref-for-elementdef-caption-44">caption</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-143">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltablecolelement-htmltablecolelement" id="ref-for-htmltablecolelement-htmltablecolelement-2">HTMLTableColElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecolelement-align" id="ref-for-dom-htmltablecolelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecolelement-ch" id="ref-for-dom-htmltablecolelement-ch-1">ch</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecolelement-choff" id="ref-for-dom-htmltablecolelement-choff-1">chOff</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecolelement-valign" id="ref-for-dom-htmltablecolelement-valign-1">vAlign</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecolelement-width" id="ref-for-dom-htmltablecolelement-width-1">width</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableColElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecolelement-align"><code>align</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableColElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecolelement-width"><code>width</code></dfn> IDL attributes of the <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-29">col</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-144">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableColElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecolelement-ch"><code>ch</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-30">col</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-145">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-col-char" id="ref-for-element-attrdef-col-char-1">char</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableColElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecolelement-choff"><code>chOff</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-31">col</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-146">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-col-charoff" id="ref-for-element-attrdef-col-charoff-1">charoff</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableColElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecolelement-valign"><code>vAlign</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-col" id="ref-for-elementdef-col-32">col</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-147">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-col-valign" id="ref-for-element-attrdef-col-valign-1">valign</a></code> content attribute.</p>
    <hr>
    <p>User agents must treat <code><a data-link-type="element" href="obsolete.html#elementdef-dir" id="ref-for-elementdef-dir-3">dir</a></code> elements in a manner equivalent to <code>ul</code> elements in terms of semantics and for purposes of rendering.</p>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-dir" id="ref-for-elementdef-dir-4">dir</a></code> element must implement the <code>HTMLDirectoryElement</code> interface.</p>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">interface</span> <dfn class="nv idl-code" data-dfn-for="HTMLDirectoryElement" data-dfn-type="interface" data-export="" id="htmldirectoryelement-htmldirectoryelement">HTMLDirectoryElement<a class="self-link" href="obsolete.html#htmldirectoryelement-htmldirectoryelement"></a></dfn> : <a class="n" data-link-type="idl-name" href="dom.html#htmlelement-htmlelement" id="ref-for-htmlelement-htmlelement-115">HTMLElement</a> {
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmldirectoryelement-compact" id="ref-for-dom-htmldirectoryelement-compact-1">compact</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLDirectoryElement" data-dfn-type="attribute" data-export="" id="dom-htmldirectoryelement-compact"><code>compact</code></dfn> IDL attribute of the <code><a data-link-type="element" href="obsolete.html#elementdef-dir" id="ref-for-elementdef-dir-5">dir</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-148">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmldivelement-htmldivelement" id="ref-for-htmldivelement-htmldivelement-1">HTMLDivElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmldivelement-align" id="ref-for-dom-htmldivelement-align-1">align</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLDivElement" data-dfn-type="attribute" data-export="" id="dom-htmldivelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-div" id="ref-for-elementdef-div-36">div</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-149">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmldlistelement-htmldlistelement" id="ref-for-htmldlistelement-htmldlistelement-1">HTMLDListElement</a> {
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmldlistelement-compact" id="ref-for-dom-htmldlistelement-compact-1">compact</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLDListElement" data-dfn-type="attribute" data-export="" id="dom-htmldlistelement-compact"><code>compact</code></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-dl" id="ref-for-elementdef-dl-29">dl</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-150">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-embedded-content.html#htmlembedelement-htmlembedelement" id="ref-for-htmlembedelement-htmlembedelement-1">HTMLEmbedElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlembedelement-align" id="ref-for-dom-htmlembedelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlembedelement-name" id="ref-for-dom-htmlembedelement-name-1">name</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLEmbedElement" data-dfn-type="attribute" data-export="" id="dom-htmlembedelement-name"><code>name</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLEmbedElement" data-dfn-type="attribute" data-export="" id="dom-htmlembedelement-align"><code>align</code></dfn> IDL attributes of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-embed" id="ref-for-elementdef-embed-59">embed</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-151">reflect</a> the respective content attributes of the same name.</p>
    <hr>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-font" id="ref-for-elementdef-font-6">font</a></code> element must implement the <code>HTMLFontElement</code> interface.</p>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">interface</span> <dfn class="nv idl-code" data-dfn-for="HTMLFontElement" data-dfn-type="interface" data-export="" id="htmlfontelement-htmlfontelement">HTMLFontElement<a class="self-link" href="obsolete.html#htmlfontelement-htmlfontelement"></a></dfn> : <a class="n" data-link-type="idl-name" href="dom.html#htmlelement-htmlelement" id="ref-for-htmlelement-htmlelement-116">HTMLElement</a> {
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlfontelement-color" id="ref-for-dom-htmlfontelement-color-1">color</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlfontelement-face" id="ref-for-dom-htmlfontelement-face-1">face</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlfontelement-size" id="ref-for-dom-htmlfontelement-size-1">size</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFontElement" data-dfn-type="attribute" data-export="" id="dom-htmlfontelement-color"><code>color</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFontElement" data-dfn-type="attribute" data-export="" id="dom-htmlfontelement-face"><code>face</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLFontElement" data-dfn-type="attribute" data-export="" id="dom-htmlfontelement-size"><code>size</code></dfn> IDL attributes of the <code><a data-link-type="element" href="obsolete.html#elementdef-font" id="ref-for-elementdef-font-7">font</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-152">reflect</a> the respective content
  attributes of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="sections.html#htmlheadingelement-htmlheadingelement" id="ref-for-htmlheadingelement-htmlheadingelement-1">HTMLHeadingElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlheadingelement-align" id="ref-for-dom-htmlheadingelement-align-1">align</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLHeadingElement" data-dfn-type="attribute" data-export="" id="dom-htmlheadingelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sections.html#elementdef-h1" id="ref-for-elementdef-h1-15">h1</a></code>–<code><a data-link-type="element" href="sections.html#elementdef-h6" id="ref-for-elementdef-h6-10">h6</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-153">reflect</a> the content attribute of the same name.</p>
    <hr>
    <p class="note" role="note"> The <dfn class="idl-code" data-dfn-for="HTMLHeadElement" data-dfn-type="attribute" data-export="" id="dom-htmlheadelement-profile"><code>profile</code><a class="self-link" href="obsolete.html#dom-htmlheadelement-profile"></a></dfn> IDL attribute on <code><a data-link-type="element" href="document-metadata.html#elementdef-head" id="ref-for-elementdef-head-84">head</a></code> elements (with the <code class="idl"><a data-link-type="idl" href="document-metadata.html#htmlheadelement-htmlheadelement" id="ref-for-htmlheadelement-htmlheadelement-2">HTMLHeadElement</a></code> interface) is intentionally omitted. Unless so required
    by <a data-link-type="dfn" href="infrastructure.html#applicable-specification" id="ref-for-applicable-specification-9">another applicable specification</a>, implementations would
    therefore not support this attribute. (It is mentioned here as it was defined in a previous
    version of the DOM specifications.) </p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmlhrelement-htmlhrelement" id="ref-for-htmlhrelement-htmlhrelement-1">HTMLHRElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlhrelement-align" id="ref-for-dom-htmlhrelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlhrelement-color" id="ref-for-dom-htmlhrelement-color-1">color</a>;
  <span class="kt">attribute</span> <span class="kt">boolean</span> <dfn class="nv idl-code" data-dfn-for="HTMLHRElement" data-dfn-type="attribute" data-export="" data-type="boolean" id="dom-htmlhrelement-noshade">noShade<a class="self-link" href="obsolete.html#dom-htmlhrelement-noshade"></a></dfn>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlhrelement-size" id="ref-for-dom-htmlhrelement-size-1">size</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlhrelement-width" id="ref-for-dom-htmlhrelement-width-1">width</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLHRElement" data-dfn-type="attribute" data-export="" id="dom-htmlhrelement-align"><code>align</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLHRElement" data-dfn-type="attribute" data-export="" id="dom-htmlhrelement-color"><code>color</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLHRElement" data-dfn-type="attribute" data-export="" id="dom-htmlhrelement-size"><code>size</code></dfn>,
  and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLHRElement" data-dfn-type="attribute" data-export="" id="dom-htmlhrelement-width"><code>width</code></dfn> IDL attributes of the <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-26">hr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-154">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn data-dfn-type="dfn" data-noexport="" id="noshade"><code>noShade</code><a class="self-link" href="obsolete.html#noshade"></a></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-hr" id="ref-for-elementdef-hr-27">hr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-155">reflect</a> the element’s <code>noshade</code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics.html#htmlhtmlelement-htmlhtmlelement" id="ref-for-htmlhtmlelement-htmlhtmlelement-1">HTMLHtmlElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlhtmlelement-version" id="ref-for-dom-htmlhtmlelement-version-1">version</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLHtmlElement" data-dfn-type="attribute" data-export="" id="dom-htmlhtmlelement-version"><code>version</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics.html#elementdef-html" id="ref-for-elementdef-html-97">html</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-156">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-embedded-content.html#htmliframeelement-htmliframeelement" id="ref-for-htmliframeelement-htmliframeelement-1">HTMLIFrameElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmliframeelement-align" id="ref-for-dom-htmliframeelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmliframeelement-scrolling" id="ref-for-dom-htmliframeelement-scrolling-1">scrolling</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmliframeelement-frameborder" id="ref-for-dom-htmliframeelement-frameborder-1">frameBorder</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmliframeelement-longdesc" id="ref-for-dom-htmliframeelement-longdesc-1">longDesc</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmliframeelement-marginheight" id="ref-for-dom-htmliframeelement-marginheight-1">marginHeight</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmliframeelement-marginwidth" id="ref-for-dom-htmliframeelement-marginwidth-1">marginWidth</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLIFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmliframeelement-align"><code>align</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLIFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmliframeelement-scrolling"><code>scrolling</code></dfn> IDL attributes of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-92">iframe</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-157">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLIFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmliframeelement-frameborder"><code>frameBorder</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-93">iframe</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-158">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-iframe-frameborder" id="ref-for-element-attrdef-iframe-frameborder-1">frameborder</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLIFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmliframeelement-longdesc"><code>longDesc</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-94">iframe</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-159">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-iframe-longdesc" id="ref-for-element-attrdef-iframe-longdesc-2">longdesc</a></code> content attribute,
  which for the purposes of reflection is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLIFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmliframeelement-marginheight"><code>marginHeight</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-95">iframe</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-160">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-iframe-marginheight" id="ref-for-element-attrdef-iframe-marginheight-1">marginheight</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLIFrameElement" data-dfn-type="attribute" data-export="" id="dom-htmliframeelement-marginwidth"><code>marginWidth</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-iframe" id="ref-for-elementdef-iframe-96">iframe</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-161">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-iframe-marginwidth" id="ref-for-element-attrdef-iframe-marginwidth-1">marginwidth</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-embedded-content.html#htmlimageelement-htmlimageelement" id="ref-for-htmlimageelement-htmlimageelement-2">HTMLImageElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlimageelement-name" id="ref-for-dom-htmlimageelement-name-1">name</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlimageelement-lowsrc" id="ref-for-dom-htmlimageelement-lowsrc-1">lowsrc</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlimageelement-align" id="ref-for-dom-htmlimageelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlimageelement-hspace" id="ref-for-dom-htmlimageelement-hspace-1">hspace</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlimageelement-vspace" id="ref-for-dom-htmlimageelement-vspace-1">vspace</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlimageelement-border" id="ref-for-dom-htmlimageelement-border-1">border</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLImageElement" data-dfn-type="attribute" data-export="" id="dom-htmlimageelement-name"><code>name</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLImageElement" data-dfn-type="attribute" data-export="" id="dom-htmlimageelement-align"><code>align</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLImageElement" data-dfn-type="attribute" data-export="" id="dom-htmlimageelement-border"><code>border</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLImageElement" data-dfn-type="attribute" data-export="" id="dom-htmlimageelement-hspace"><code>hspace</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLImageElement" data-dfn-type="attribute" data-export="" id="dom-htmlimageelement-vspace"><code>vspace</code></dfn> IDL attributes of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-185">img</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-162">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLImageElement" data-dfn-type="attribute" data-export="" id="dom-htmlimageelement-lowsrc"><code>lowsrc</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-img" id="ref-for-elementdef-img-186">img</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-163">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-img-lowsrc" id="ref-for-element-attrdef-img-lowsrc-1">lowsrc</a></code> content attribute, which for the
  purposes of reflection is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="sec-forms.html#htmlinputelement-htmlinputelement" id="ref-for-htmlinputelement-htmlinputelement-1">HTMLInputElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlinputelement-align" id="ref-for-dom-htmlinputelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlinputelement-usemap" id="ref-for-dom-htmlinputelement-usemap-1">useMap</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLInputElement" data-dfn-type="attribute" data-export="" id="dom-htmlinputelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-344">input</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-164">reflect</a> the content attribute of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLInputElement" data-dfn-type="attribute" data-export="" id="dom-htmlinputelement-usemap"><code>useMap</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sec-forms.html#elementdef-input" id="ref-for-elementdef-input-345">input</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-165">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-input-usemap" id="ref-for-element-attrdef-input-usemap-1">usemap</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="sec-forms.html#htmllegendelement-htmllegendelement" id="ref-for-htmllegendelement-htmllegendelement-1">HTMLLegendElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmllegendelement-align" id="ref-for-dom-htmllegendelement-align-1">align</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLLegendElement" data-dfn-type="attribute" data-export="" id="dom-htmllegendelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="sec-forms.html#elementdef-legend" id="ref-for-elementdef-legend-24">legend</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-166">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmllielement-htmllielement" id="ref-for-htmllielement-htmllielement-1">HTMLLIElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmllielement-type" id="ref-for-dom-htmllielement-type-1">type</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLLIElement" data-dfn-type="attribute" data-export="" id="dom-htmllielement-type"><code>type</code></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-li" id="ref-for-elementdef-li-39">li</a></code> element
  must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-167">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="document-metadata.html#htmllinkelement-htmllinkelement" id="ref-for-htmllinkelement-htmllinkelement-2">HTMLLinkElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmllinkelement-charset" id="ref-for-dom-htmllinkelement-charset-1">charset</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmllinkelement-target" id="ref-for-dom-htmllinkelement-target-1">target</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLLinkElement" data-dfn-type="attribute" data-export="" id="dom-htmllinkelement-charset"><code>charset</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLLinkElement" data-dfn-type="attribute" data-export="" id="dom-htmllinkelement-target"><code>target</code></dfn> IDL attributes of the <code><a data-link-type="element" href="document-metadata.html#elementdef-link" id="ref-for-elementdef-link-76">link</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-168">reflect</a> the respective content attributes of the same name.</p>
    <hr>
    <p>User agents must treat <code><a data-link-type="element" href="obsolete.html#elementdef-listing" id="ref-for-elementdef-listing-4">listing</a></code> elements in a manner equivalent to <code>pre</code> elements in
  terms of semantics and for purposes of rendering.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="interactive-elements.html#htmlmenuelement-htmlmenuelement" id="ref-for-htmlmenuelement-htmlmenuelement-3">HTMLMenuElement</a> {
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlmenuelement-compact" id="ref-for-dom-htmlmenuelement-compact-1">compact</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMenuElement" data-dfn-type="attribute" data-export="" id="dom-htmlmenuelement-compact"><code>compact</code></dfn> IDL attribute of the <code><a data-link-type="element" href="interactive-elements.html#elementdef-menu" id="ref-for-elementdef-menu-43">menu</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-169">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="document-metadata.html#htmlmetaelement-htmlmetaelement" id="ref-for-htmlmetaelement-htmlmetaelement-1">HTMLMetaElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlmetaelement-scheme" id="ref-for-dom-htmlmetaelement-scheme-1">scheme</a>;
};
</pre>
    <p>User agents may treat the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-meta-scheme" id="ref-for-element-attrdef-meta-scheme-1">scheme</a></code> content attribute
  on the <code><a data-link-type="element" href="document-metadata.html#elementdef-meta" id="ref-for-elementdef-meta-59">meta</a></code> element as an extension of the element’s <code><a data-link-type="element-sub" href="document-metadata.html#element-attrdef-meta-name" id="ref-for-element-attrdef-meta-name-2">name</a></code> content attribute when
  processing a <code><a data-link-type="element" href="document-metadata.html#elementdef-meta" id="ref-for-elementdef-meta-60">meta</a></code> element with a <code><a data-link-type="element-sub" href="document-metadata.html#element-attrdef-meta-name" id="ref-for-element-attrdef-meta-name-3">name</a></code> attribute whose value is one that the user
  agent recognizes as supporting the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-meta-scheme" id="ref-for-element-attrdef-meta-scheme-2">scheme</a></code> attribute.</p>
    <p>User agents are encouraged to ignore the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-meta-scheme" id="ref-for-element-attrdef-meta-scheme-3">scheme</a></code> attribute and instead process the
  value given to the metadata name as if it had been specified for each expected value of the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-meta-scheme" id="ref-for-element-attrdef-meta-scheme-4">scheme</a></code> attribute.</p>
    <div class="example" id="example-a6959f80">
     <a class="self-link" href="obsolete.html#example-a6959f80"></a> For example, if the user agent acts on <code><a data-link-type="element" href="document-metadata.html#elementdef-meta" id="ref-for-elementdef-meta-61">meta</a></code> elements with <code><a data-link-type="element-sub" href="document-metadata.html#element-attrdef-meta-name" id="ref-for-element-attrdef-meta-name-4">name</a></code> attributes having the value "eGMS.subject.keyword", and knows that the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-meta-scheme" id="ref-for-element-attrdef-meta-scheme-5">scheme</a></code> attribute is used with this metadata name, then it could take the <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-meta-scheme" id="ref-for-element-attrdef-meta-scheme-6">scheme</a></code> attribute
    into account, acting as if it was an extension of the <code><a data-link-type="element-sub" href="document-metadata.html#element-attrdef-meta-name" id="ref-for-element-attrdef-meta-name-5">name</a></code> attribute. Thus the
    following two <code><a data-link-type="element" href="document-metadata.html#elementdef-meta" id="ref-for-elementdef-meta-62">meta</a></code> elements could be treated as two elements giving values for two
    different metadata names, one consisting of a combination of "eGMS.subject.keyword" and "LGCL",
    and the other consisting of a combination of "eGMS.subject.keyword" and "ORLY": 
<pre class="bad highlight"><span class="c">&lt;!-- this markup is invalid --&gt;</span>
<span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"eGMS.subject.keyword"</span> <span class="na">scheme=</span><span class="s">"LGCL"</span> <span class="na">content=</span><span class="s">"Abandoned vehicles"</span><span class="nt">&gt;</span>
<span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"eGMS.subject.keyword"</span> <span class="na">scheme=</span><span class="s">"ORLY"</span> <span class="na">content=</span><span class="s">"Mah car: kthxbye"</span><span class="nt">&gt;</span>
</pre>
     <p>The suggested processing of this markup, however, would be equivalent to the following:</p>
<pre class="highlight"><span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"eGMS.subject.keyword"</span> <span class="na">content=</span><span class="s">"Abandoned vehicles"</span><span class="nt">&gt;</span>
<span class="nt">&lt;meta</span> <span class="na">name=</span><span class="s">"eGMS.subject.keyword"</span> <span class="na">content=</span><span class="s">"Mah car: kthxbye"</span><span class="nt">&gt;</span>
</pre>
    </div>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLMetaElement" data-dfn-type="attribute" data-export="" id="dom-htmlmetaelement-scheme"><code>scheme</code></dfn> IDL attribute of the <code><a data-link-type="element" href="document-metadata.html#elementdef-meta" id="ref-for-elementdef-meta-63">meta</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-170">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-embedded-content.html#htmlobjectelement-htmlobjectelement" id="ref-for-htmlobjectelement-htmlobjectelement-1">HTMLObjectElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-align" id="ref-for-dom-htmlobjectelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-archive" id="ref-for-dom-htmlobjectelement-archive-1">archive</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-code" id="ref-for-dom-htmlobjectelement-code-1">code</a>;
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlobjectelement-declare" id="ref-for-dom-htmlobjectelement-declare-1">declare</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlobjectelement-hspace" id="ref-for-dom-htmlobjectelement-hspace-1">hspace</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-standby" id="ref-for-dom-htmlobjectelement-standby-1">standby</a>;
  <span class="kt">attribute</span> <span class="kt">unsigned</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="unsigned long" href="obsolete.html#dom-htmlobjectelement-vspace" id="ref-for-dom-htmlobjectelement-vspace-1">vspace</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-codebase" id="ref-for-dom-htmlobjectelement-codebase-1">codeBase</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-codetype" id="ref-for-dom-htmlobjectelement-codetype-1">codeType</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-usemap" id="ref-for-dom-htmlobjectelement-usemap-1">useMap</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlobjectelement-border" id="ref-for-dom-htmlobjectelement-border-1">border</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-align"><code>align</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-archive"><code>archive</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-border"><code>border</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-code"><code>code</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-declare"><code>declare</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-hspace"><code>hspace</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-standby"><code>standby</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-vspace"><code>vspace</code></dfn> IDL attributes of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-112">object</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-171">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-codebase"><code>codeBase</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-113">object</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-172">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-object-codebase" id="ref-for-element-attrdef-object-codebase-1">codebase</a></code> content attribute,
  which for the purposes of reflection is defined as containing a <a data-link-type="dfn" href="https://url.spec.whatwg.org/#concept-url-url">URL</a>.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-codetype"><code>codeType</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-114">object</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-173">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-object-codetype" id="ref-for-element-attrdef-object-codetype-1">codetype</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLObjectElement" data-dfn-type="attribute" data-export="" id="dom-htmlobjectelement-usemap"><code>useMap</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-object" id="ref-for-elementdef-object-115">object</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-174">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-object-usemap" id="ref-for-element-attrdef-object-usemap-1">usemap</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmlolistelement-htmlolistelement" id="ref-for-htmlolistelement-htmlolistelement-1">HTMLOListElement</a> {
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlolistelement-compact" id="ref-for-dom-htmlolistelement-compact-1">compact</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLOListElement" data-dfn-type="attribute" data-export="" id="dom-htmlolistelement-compact"><code>compact</code></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-ol" id="ref-for-elementdef-ol-20">ol</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-175">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmlparagraphelement-htmlparagraphelement" id="ref-for-htmlparagraphelement-htmlparagraphelement-1">HTMLParagraphElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlparagraphelement-align" id="ref-for-dom-htmlparagraphelement-align-1">align</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLParagraphElement" data-dfn-type="attribute" data-export="" id="dom-htmlparagraphelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-p" id="ref-for-elementdef-p-75">p</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-176">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-embedded-content.html#htmlparamelement-htmlparamelement" id="ref-for-htmlparamelement-htmlparamelement-1">HTMLParamElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlparamelement-type" id="ref-for-dom-htmlparamelement-type-1">type</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlparamelement-valuetype" id="ref-for-dom-htmlparamelement-valuetype-1">valueType</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLParamElement" data-dfn-type="attribute" data-export="" id="dom-htmlparamelement-type"><code>type</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-16">param</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-177">reflect</a> the content attribute of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLParamElement" data-dfn-type="attribute" data-export="" id="dom-htmlparamelement-valuetype"><code>valueType</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-embedded-content.html#elementdef-param" id="ref-for-elementdef-param-17">param</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-178">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-param-valuetype" id="ref-for-element-attrdef-param-valuetype-1">valuetype</a></code> content attribute.</p>
    <hr>
    <p>User agents must treat <code><a data-link-type="element" href="obsolete.html#elementdef-plaintext" id="ref-for-elementdef-plaintext-5">plaintext</a></code> elements in a manner equivalent to <code>pre</code> elements
  in terms of semantics and for purposes of rendering. (The parser has special behavior for this
  element, though.)</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmlpreelement-htmlpreelement" id="ref-for-htmlpreelement-htmlpreelement-1">HTMLPreElement</a> {
  <span class="kt">attribute</span> <span class="kt">long</span> <a class="nv idl-code" data-link-type="attribute" data-type="long" href="obsolete.html#dom-htmlpreelement-width" id="ref-for-dom-htmlpreelement-width-1">width</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLPreElement" data-dfn-type="attribute" data-export="" id="dom-htmlpreelement-width"><code>width</code></dfn> IDL attribute of the <code><a data-link-type="element" href="grouping-content.html#elementdef-pre" id="ref-for-elementdef-pre-22">pre</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-179">reflect</a> the content attribute of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="semantics-scripting.html#htmlscriptelement-htmlscriptelement" id="ref-for-htmlscriptelement-htmlscriptelement-3">HTMLScriptElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlscriptelement-event" id="ref-for-dom-htmlscriptelement-event-1">event</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmlscriptelement-htmlfor" id="ref-for-dom-htmlscriptelement-htmlfor-1">htmlFor</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLScriptElement" data-dfn-type="attribute" data-export="" id="dom-htmlscriptelement-event"><code>event</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-137">script</a></code> element must reflect the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-script-event" id="ref-for-element-attrdef-script-event-3">event</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLScriptElement" data-dfn-type="attribute" data-export="" id="dom-htmlscriptelement-htmlfor"><code>htmlFor</code></dfn> IDL attribute of the <code><a data-link-type="element" href="semantics-scripting.html#elementdef-script" id="ref-for-elementdef-script-138">script</a></code> element must reflect the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-script-for" id="ref-for-element-attrdef-script-for-3">for</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltableelement-htmltableelement" id="ref-for-htmltableelement-htmltableelement-1">HTMLTableElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-align" id="ref-for-dom-htmltableelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-border" id="ref-for-dom-htmltableelement-border-1">border</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-frame" id="ref-for-dom-htmltableelement-frame-1">frame</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-rules" id="ref-for-dom-htmltableelement-rules-1">rules</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-summary" id="ref-for-dom-htmltableelement-summary-1">summary</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-width" id="ref-for-dom-htmltableelement-width-1">width</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-bgcolor" id="ref-for-dom-htmltableelement-bgcolor-1">bgColor</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-cellpadding" id="ref-for-dom-htmltableelement-cellpadding-1">cellPadding</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltableelement-cellspacing" id="ref-for-dom-htmltableelement-cellspacing-1">cellSpacing</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-align"><code>align</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-border"><code>border</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-frame"><code>frame</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-summary"><code>summary</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-rules"><code>rules</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-width"><code>width</code></dfn>,
  IDL attributes of the <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-132">table</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-180">reflect</a> the respective content
  attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-bgcolor"><code>bgColor</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-133">table</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-181">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-table-bgcolor" id="ref-for-element-attrdef-table-bgcolor-1">bgcolor</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-cellpadding"><code>cellPadding</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-134">table</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-182">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-table-cellpadding" id="ref-for-element-attrdef-table-cellpadding-1">cellpadding</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableElement" data-dfn-type="attribute" data-export="" id="dom-htmltableelement-cellspacing"><code>cellSpacing</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-table" id="ref-for-elementdef-table-135">table</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-183">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-table-cellspacing" id="ref-for-element-attrdef-table-cellspacing-1">cellspacing</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltablesectionelement-htmltablesectionelement" id="ref-for-htmltablesectionelement-htmltablesectionelement-7">HTMLTableSectionElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablesectionelement-align" id="ref-for-dom-htmltablesectionelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablesectionelement-ch" id="ref-for-dom-htmltablesectionelement-ch-1">ch</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablesectionelement-choff" id="ref-for-dom-htmltablesectionelement-choff-1">chOff</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablesectionelement-valign" id="ref-for-dom-htmltablesectionelement-valign-1">vAlign</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableSectionElement" data-dfn-type="attribute" data-export="" id="dom-htmltablesectionelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-76">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-65">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-67">tfoot</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-184">reflect</a> the content attribute of the same
  name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableSectionElement" data-dfn-type="attribute" data-export="" id="dom-htmltablesectionelement-ch"><code>ch</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-77">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-66">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-68">tfoot</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-185">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tbody-char" id="ref-for-element-attrdef-tbody-char-1">char</a></code> content attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableSectionElement" data-dfn-type="attribute" data-export="" id="dom-htmltablesectionelement-choff"><code>chOff</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-78">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-67">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-69">tfoot</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-186">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tbody-charoff" id="ref-for-element-attrdef-tbody-charoff-1">charoff</a></code> content attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableSectionElement" data-dfn-type="attribute" data-export="" id="dom-htmltablesectionelement-valign"><code>vAlign</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tbody" id="ref-for-elementdef-tbody-79">tbody</a></code>, <code><a data-link-type="element" href="tabular-data.html#elementdef-thead" id="ref-for-elementdef-thead-68">thead</a></code>, and <code><a data-link-type="element" href="tabular-data.html#elementdef-tfoot" id="ref-for-elementdef-tfoot-70">tfoot</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-187">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tbody-valign" id="ref-for-element-attrdef-tbody-valign-1">valign</a></code> content attributes.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltablecellelement-htmltablecellelement" id="ref-for-htmltablecellelement-htmltablecellelement-3">HTMLTableCellElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-align" id="ref-for-dom-htmltablecellelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-axis" id="ref-for-dom-htmltablecellelement-axis-1">axis</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-height" id="ref-for-dom-htmltablecellelement-height-1">height</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-width" id="ref-for-dom-htmltablecellelement-width-1">width</a>;

  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-ch" id="ref-for-dom-htmltablecellelement-ch-1">ch</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-choff" id="ref-for-dom-htmltablecellelement-choff-1">chOff</a>;
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmltablecellelement-nowrap" id="ref-for-dom-htmltablecellelement-nowrap-1">noWrap</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-valign" id="ref-for-dom-htmltablecellelement-valign-1">vAlign</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablecellelement-bgcolor" id="ref-for-dom-htmltablecellelement-bgcolor-1">bgColor</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-align"><code>align</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-axis"><code>axis</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-height"><code>height</code></dfn>,
  and <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-width"><code>width</code></dfn> IDL attributes of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-62">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-76">th</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-188">reflect</a> the respective content attributes of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-ch"><code>ch</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-63">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-77">th</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-189">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-td-char" id="ref-for-element-attrdef-td-char-1">char</a></code> content attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-choff"><code>chOff</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-64">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-78">th</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-190">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-td-charoff" id="ref-for-element-attrdef-td-charoff-1">charoff</a></code> content attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-nowrap"><code>noWrap</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-65">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-79">th</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-191">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-td-nowrap" id="ref-for-element-attrdef-td-nowrap-1">nowrap</a></code> content
  attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-valign"><code>vAlign</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-66">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-80">th</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-192">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-td-valign" id="ref-for-element-attrdef-td-valign-1">valign</a></code> content
  attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltablecellelement-bgcolor"><code>bgColor</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-67">td</a></code> and <code><a data-link-type="element" href="tabular-data.html#elementdef-th" id="ref-for-elementdef-th-81">th</a></code> elements must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-193">reflect</a> the elements' <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-td-bgcolor" id="ref-for-element-attrdef-td-bgcolor-1">bgcolor</a></code> content
  attributes.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltabledatacellelement-htmltabledatacellelement" id="ref-for-htmltabledatacellelement-htmltabledatacellelement-1">HTMLTableDataCellElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltabledatacellelement-abbr" id="ref-for-dom-htmltabledatacellelement-abbr-1">abbr</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableDataCellElement" data-dfn-type="attribute" data-export="" id="dom-htmltabledatacellelement-abbr"><code>abbr</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-td" id="ref-for-elementdef-td-68">td</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-194">reflect</a> the respective content attributes of the same name.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="tabular-data.html#htmltablerowelement-htmltablerowelement" id="ref-for-htmltablerowelement-htmltablerowelement-2">HTMLTableRowElement</a> {
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablerowelement-align" id="ref-for-dom-htmltablerowelement-align-1">align</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablerowelement-ch" id="ref-for-dom-htmltablerowelement-ch-1">ch</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablerowelement-choff" id="ref-for-dom-htmltablerowelement-choff-1">chOff</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablerowelement-valign" id="ref-for-dom-htmltablerowelement-valign-1">vAlign</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-htmltablerowelement-bgcolor" id="ref-for-dom-htmltablerowelement-bgcolor-1">bgColor</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableRowElement" data-dfn-type="attribute" data-export="" id="dom-htmltablerowelement-align"><code>align</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-98">tr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-195">reflect</a> the content attribute of the same name.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableRowElement" data-dfn-type="attribute" data-export="" id="dom-htmltablerowelement-ch"><code>ch</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-99">tr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-196">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tr-char" id="ref-for-element-attrdef-tr-char-1">char</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableRowElement" data-dfn-type="attribute" data-export="" id="dom-htmltablerowelement-choff"><code>chOff</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-100">tr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-197">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tr-charoff" id="ref-for-element-attrdef-tr-charoff-1">charoff</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableRowElement" data-dfn-type="attribute" data-export="" id="dom-htmltablerowelement-valign"><code>vAlign</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-101">tr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-198">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tr-valign" id="ref-for-element-attrdef-tr-valign-1">valign</a></code> content attribute.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLTableRowElement" data-dfn-type="attribute" data-export="" id="dom-htmltablerowelement-bgcolor"><code>bgColor</code></dfn> IDL attribute of the <code><a data-link-type="element" href="tabular-data.html#elementdef-tr" id="ref-for-elementdef-tr-102">tr</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-199">reflect</a> the element’s <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-tr-bgcolor" id="ref-for-element-attrdef-tr-bgcolor-1">bgcolor</a></code> content attribute.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="grouping-content.html#htmlulistelement-htmlulistelement" id="ref-for-htmlulistelement-htmlulistelement-1">HTMLUListElement</a> {
  <span class="kt">attribute</span> <span class="kt">boolean</span> <a class="nv idl-code" data-link-type="attribute" data-type="boolean" href="obsolete.html#dom-htmlulistelement-compact" id="ref-for-dom-htmlulistelement-compact-1">compact</a>;
  <span class="kt">attribute</span> <span class="kt">DOMString</span> <dfn class="nv dfn-paneled idl-code" data-dfn-for="HTMLUListElement" data-dfn-type="attribute" data-export="" data-type="DOMString" id="dom-htmlulistelement-type">type</dfn>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="HTMLUListElement" data-dfn-type="attribute" data-export="" id="dom-htmlulistelement-compact"><code>compact</code></dfn> and <code class="idl"><a data-link-type="idl" href="obsolete.html#dom-htmlulistelement-type" id="ref-for-dom-htmlulistelement-type-1">type</a></code> IDL attributes of the <code><a data-link-type="element" href="grouping-content.html#elementdef-ul" id="ref-for-elementdef-ul-25">ul</a></code> element must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-200">reflect</a> the respective content attributes of the
  same name.</p>
    <hr>
    <p>User agents must treat <code><a data-link-type="element" href="obsolete.html#elementdef-xmp" id="ref-for-elementdef-xmp-4">xmp</a></code> elements in a manner equivalent to <code><a data-link-type="element" href="grouping-content.html#elementdef-pre" id="ref-for-elementdef-pre-23">pre</a></code> elements in terms of
  semantics and for purposes of rendering. (The parser has special behavior for this element though.)</p>
    <hr>
    <p>The <code><a data-link-type="element" href="obsolete.html#elementdef-blink" id="ref-for-elementdef-blink-1">blink</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-bgsound" id="ref-for-elementdef-bgsound-3">bgsound</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-isindex" id="ref-for-elementdef-isindex-1">isindex</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-multicol" id="ref-for-elementdef-multicol-1">multicol</a></code>, <code><a data-link-type="element" href="obsolete.html#elementdef-nextid" id="ref-for-elementdef-nextid-1">nextid</a></code>, and <code><a data-link-type="element" href="obsolete.html#elementdef-spacer" id="ref-for-elementdef-spacer-1">spacer</a></code> elements must
  use the <code class="idl"><a data-link-type="idl" href="dom.html#htmlunknownelement-htmlunknownelement" id="ref-for-htmlunknownelement-htmlunknownelement-3">HTMLUnknownElement</a></code> interface.</p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="https://www.w3.org/TR/dom/#document">Document</a> {
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-document-fgcolor" id="ref-for-dom-document-fgcolor-1">fgColor</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-document-linkcolor" id="ref-for-dom-document-linkcolor-1">linkColor</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-document-vlinkcolor" id="ref-for-dom-document-vlinkcolor-1">vlinkColor</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-document-alinkcolor" id="ref-for-dom-document-alinkcolor-1">alinkColor</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">TreatNullAs</a>=<a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/WebIDL-1/#TreatNullAs">EmptyString</a>] <span class="kt">attribute</span> <span class="kt">DOMString</span> <a class="nv idl-code" data-link-type="attribute" data-type="DOMString" href="obsolete.html#dom-document-bgcolor" id="ref-for-dom-document-bgcolor-1">bgColor</a>;

  [<a class="nv idl-code" data-link-type="extended-attribute">SameObject</a>] <span class="kt">readonly</span> <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/dom/#htmlcollection">HTMLCollection</a> <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="HTMLCollection" href="obsolete.html#dom-document-anchors" id="ref-for-dom-document-anchors-1">anchors</a>;
  [<a class="nv idl-code" data-link-type="extended-attribute">SameObject</a>] <span class="kt">readonly</span> <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="https://www.w3.org/TR/dom/#htmlcollection">HTMLCollection</a> <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="HTMLCollection" href="obsolete.html#dom-document-applets" id="ref-for-dom-document-applets-1">applets</a>;

  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-document-clear" id="ref-for-dom-document-clear-1">clear</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-document-captureevents" id="ref-for-dom-document-captureevents-1">captureEvents</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-document-releaseevents" id="ref-for-dom-document-releaseevents-1">releaseEvents</a>();

  [<a class="nv idl-code" data-link-type="extended-attribute">SameObject</a>] <span class="kt">readonly</span> <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="infrastructure.html#htmlallcollection-htmlallcollection" id="ref-for-htmlallcollection-htmlallcollection-9">HTMLAllCollection</a> <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="HTMLAllCollection" href="obsolete.html#dom-document-all" id="ref-for-dom-document-all-1">all</a>;
};
</pre>
    <p>The attributes of the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> object listed in the first column of the following table must <a data-link-type="dfn" href="infrastructure.html#reflection" id="ref-for-reflection-201">reflect</a> the content attribute on the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-151">body</a></code> element with the name given in the
  corresponding cell in the second column on the same row, if the <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-152">body</a></code> element is a <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-153">body</a></code> element (as opposed to a <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-29">frameset</a></code> element). When there is no <code><a data-link-type="element" href="sections.html#elementdef-body" id="ref-for-elementdef-body-154">body</a></code> element or if it is a <code><a data-link-type="element" href="obsolete.html#elementdef-frameset" id="ref-for-elementdef-frameset-30">frameset</a></code> element, the attributes must instead return the empty string on getting and do
  nothing on setting.</p>
    <table>
     <thead>
      <tr>
       <th>IDL attribute
       </th><th>Content attribute
     </th></tr></thead><tbody>
      <tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-fgcolor"><code>fgColor</code></dfn>
       </td><td><code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-text" id="ref-for-element-attrdef-body-text-3">text</a></code>
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-linkcolor"><code>linkColor</code></dfn>
       </td><td><code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-link" id="ref-for-element-attrdef-body-link-3">link</a></code>
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-vlinkcolor"><code>vlinkColor</code></dfn>
       </td><td><code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-vlink" id="ref-for-element-attrdef-body-vlink-3">vlink</a></code>
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-alinkcolor"><code>alinkColor</code></dfn>
       </td><td><code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-alink" id="ref-for-element-attrdef-body-alink-3">alink</a></code>
      </td></tr><tr>
       <td><dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-bgcolor"><code>bgColor</code></dfn>
       </td><td><code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-body-bgcolor" id="ref-for-element-attrdef-body-bgcolor-3">bgcolor</a></code>
    </td></tr></tbody></table>
    <hr>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-anchors"><code>anchors</code></dfn> attribute must return an <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#htmlcollection">HTMLCollection</a></code> rooted at the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> node, whose filter matches only <code><a data-link-type="element" href="textlevel-semantics.html#elementdef-a" id="ref-for-elementdef-a-119">a</a></code> elements with <code><a data-link-type="element-sub" href="obsolete.html#element-attrdef-a-name" id="ref-for-element-attrdef-a-name-4">name</a></code> attributes.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-applets"><code>applets</code></dfn> attribute must return an <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#htmlcollection">HTMLCollection</a></code> rooted at the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> node, whose filter matches only <code><a data-link-type="element" href="obsolete.html#elementdef-applet" id="ref-for-elementdef-applet-26">applet</a></code> elements.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="method" data-export="" id="dom-document-clear"><code>clear()</code></dfn>, <dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="method" data-export="" id="dom-document-captureevents"><code>captureEvents()</code></dfn>, and <dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="method" data-export="" id="dom-document-releaseevents"><code>releaseEvents()</code></dfn> methods must do nothing.</p>
    <hr>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Document" data-dfn-type="attribute" data-export="" id="dom-document-all"><code>all</code></dfn> attribute must return an <code class="idl"><a data-link-type="idl" href="infrastructure.html#htmlallcollection-htmlallcollection" id="ref-for-htmlallcollection-htmlallcollection-10">HTMLAllCollection</a></code> rooted at the <code class="idl"><a data-link-type="idl" href="https://www.w3.org/TR/dom/#document">Document</a></code> node, whose filter matches all elements.</p>
    <p>The object returned for <code>all</code> has several unusual behaviors:</p>
    <ul>
     <li data-md="">
      <p>The user agent must act as if the ToBoolean() operator in JavaScript converts the object
returned for <code>all</code> to the false value.</p>
     </li><li data-md="">
      <p>The user agent must act as if, for the purposes of the <code>==</code> and <code>!=</code> operators in JavaScript, the object returned for <code>all</code> compares as equal to the <code>undefined</code> and <code>null</code> values. (Comparisons using the <code>===</code> operator, and comparisons to other values such as strings or objects, are unaffected.)</p>
     </li><li data-md="">
      <p>The user agent must act such that the <code>typeof</code> operator in JavaScript returns the
string <code>undefined</code> when applied to the object returned for <code>all</code>.</p>
    </li></ul>
    <p class="note" role="note"> These requirements are a <a data-link-type="dfn" href="introduction.html#willful-violation" id="ref-for-willful-violation-8">willful violation</a> of the JavaScript specification current at the
    time of writing (ECMAScript edition 6). The JavaScript specification requires that the
    ToBoolean() operator convert all objects to the true value, and does not have provisions for
    objects acting as if they were <code>undefined</code> for the purposes of certain operators.
    This violation is motivated by a desire for compatibility with two classes of legacy content:
    one that uses the presence of <code>document.all</code> as a way to detect legacy user agents,
    and one that only supports those legacy user agents and uses the <code>document.all</code> object without testing for its presence first. <a data-link-type="biblio" href="references.html#biblio-ecma-262">[ECMA-262]</a> </p>
    <hr>
<pre class="idl highlight def" data-highlight="webidl"><span class="kt">partial</span> <span class="kt">interface</span> <a class="nv idl-code" data-link-type="interface" href="browsers.html#window-window" id="ref-for-window-window-70">Window</a> {
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-window-captureevents" id="ref-for-dom-window-captureevents-1">captureEvents</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-window-releaseevents" id="ref-for-dom-window-releaseevents-1">releaseEvents</a>();

  [<a class="nv idl-code" data-link-type="extended-attribute">Replaceable</a>, <a class="nv idl-code" data-link-type="extended-attribute">SameObject</a>] <span class="kt">readonly</span> <span class="kt">attribute</span> <a class="n" data-link-type="idl-name" href="obsolete.html#extenal-external" id="ref-for-extenal-external-1">External</a> <a class="nv idl-code" data-link-type="attribute" data-readonly="" data-type="External" href="obsolete.html#dom-window-external" id="ref-for-dom-window-external-1">external</a>;
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Window" data-dfn-type="method" data-export="" id="dom-window-captureevents"><code>captureEvents()</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="Window" data-dfn-type="method" data-export="" id="dom-window-releaseevents"><code>releaseEvents()</code></dfn> methods must do nothing.</p>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="Window" data-dfn-type="attribute" data-export="" id="dom-window-external"><code>external</code></dfn> attribute of the <code class="idl"><a data-link-type="idl" href="browsers.html#window-window" id="ref-for-window-window-71">Window</a></code> interface
  must return an instance of the <code class="idl"><a data-link-type="idl" href="obsolete.html#extenal-external" id="ref-for-extenal-external-2">External</a></code> interface:</p>
<pre class="idl highlight def" data-highlight="webidl">[<a class="nv idl-code" data-link-type="extended-attribute">NoInterfaceObject</a>]
<span class="kt">interface</span> <dfn class="nv dfn-paneled idl-code" data-dfn-for="Extenal" data-dfn-type="interface" data-export="" id="extenal-external">External</dfn> {
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-external-addsearchprovider" id="ref-for-dom-external-addsearchprovider-1">AddSearchProvider</a>();
  <span class="kt">void</span> <a class="nv idl-code" data-link-type="method" href="obsolete.html#dom-external-issearchproviderinstalled" id="ref-for-dom-external-issearchproviderinstalled-1">IsSearchProviderInstalled</a>();
};
</pre>
    <p>The <dfn class="dfn-paneled idl-code" data-dfn-for="External" data-dfn-type="method" data-export="" id="dom-external-addsearchprovider"><code>AddSearchProvider()</code></dfn> and <dfn class="dfn-paneled idl-code" data-dfn-for="External" data-dfn-type="method" data-export="" id="dom-external-issearchproviderinstalled"><code>IsSearchProviderInstalled()</code></dfn> methods
  must do nothing.</p>
   </section></main>
  
<script src="js/fixup.js"></script>
  

<p class="prev_next">← <a href="rendering.html#rendering"><span class="secno">10</span> <span class="content">Rendering</span></a> — <a href="index.html#contents">Table of contents</a> — <a href="iana.html#iana"><span class="secno">12</span> <span class="content">IANA considerations</span></a> →</p></body></html>
